我有一个要求,我需要打包各种Web服务的所有常见类,并将它们作为依赖项(以避免重复多个服务)。我的EAR文件的结构如下:
META-INF/MANIFEST.MF META-INF/application.xml commons-codec-1.2.jar MyWebService1.war MyWebService2.war MyWebService1.jar MyWebService2.jar EJB_Bean.jar
现在我在WAR文件的Manifest中包含了依赖jar,如下所示(不确定是否合适), `
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: 1.7.0_51-b13 (Oracle Corporation)
Class-Path: MyWebService1.jar
在我说明的结构中,当我尝试将EAR文件部署到web逻辑服务器上时,我得到 java.lang.NoClassDefFoundError ,但是如果我在WEB-INF / lib下移动依赖项jar我的WAR的文件夹并重新打包我的EAR文件,部署按预期正常。
有什么方法可以在WAR文件之外包含我的WAR文件依赖库,甚至在我的EAR文件之外也是我的问题。任何帮助或建议将不胜感激。
答案 0 :(得分:2)
设置EAR包库的一种简单方法是在EAR根目录下创建一个 lib 文件夹,并将库放在里面。
在这种情况下,你的EAR会有这样的东西:
META-INF/MANIFEST.MF
META-INF/application.xml
MyWebService1.war
MyWebService2.war
lib/commons-codec-1.2.jar
lib/MyWebService1.jar
lib/MyWebService2.jar
EJB_Bean.jar
答案 1 :(得分:0)
在tomcat中,jar文件可以放在lib目录中,这些jar文件可供该服务器上部署的所有应用程序使用。在网络逻辑中,必须有类似的方法来做到这一点。一个lib文件夹,web逻辑服务器从该文件夹加载所有jar文件。
答案 2 :(得分:0)