是否必须在EAR中的WAR中重复使用常见的JAR?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否必须在EAR中的WAR中重复使用常见的JAR?相关的知识,希望对你有一定的参考价值。
我有一个JAR文件用于授权。我需要为每个WAR文件使用它。所有WAR文件都打包在EAR文件中。我是否必须在每个WAR中重复这个常见的JAR,或者是否存在公共库的结构?
所以我的例子看起来像这样......
big.ear
- META-INF
- MANIFEST.MF
- application.xml
- appl1.war
- META-INF
- MANIFEST.MF
- WEB-INF
- web.xml
- lib
- unique1.jar
- unique2.jar
- unique3.jar
- common1.jar
- jsps/html/etc
- appl2.war
- META-INF
- MANIFEST.MF
- WEB-INF
- web.xml
- lib
- unique3.jar
- unique4.jar
- common1.jar
- jsps/html/etc
- appl3.war
- META-INF
- MANIFEST.MF
- WEB-INF
- web.xml
- lib
- unique5.jar
- common1.jar
- jsps/html/etc
我的每个WAR应用程序都可以看到common1.jar,但它在EAR中有三次。
我可以在EAR结构中放置common1.jar,以便appl1,appl2和appl3可以看到它而不重复三次?
答案
标准方法是将JAR放在EAR的根部,并在WARs的Class-Path
的META-INF/MANIFEST.MF
属性中引用它们。见this article。
检查容器的文档以确保它受支持。
另一答案
它符合JEE5规范,EE 8.2.1章节:
.ear文件可能包含一个包含JAR文件中打包的库的目录。 .ear文件的部署描述符的library-directory元素包含此目录的名称。如果未指定library-directory元素,或者.ear文件不包含部署描述符,则使用名为lib的目录。
另一答案
您的应用服务器应该有一个像shared / lib这样的文件夹,您可以在其中放置可以由同一实例中的多个Web应用共享的jar文件。
以上是关于是否必须在EAR中的WAR中重复使用常见的JAR?的主要内容,如果未能解决你的问题,请参考以下文章