我正在尝试将包含ejb应用程序的耳朵部署到weblogic 9.2服务器中。
该耳朵是使用maven创建的(它本身是使用ear ant任务创建的)。 Maven产生以下结构:
myApp.ear
- META-INF
- application
- MANIFEST.MF
- dependency-1.jar
- dependency-2.jar
- ...
- dependency-n.jar
- myEjb.jar
清单包含一个看起来不错的“类路径”部分(列出了所有依赖项jar)
当我尝试部署耳朵时,出现NoClassDefFoundError异常。
如果将所有jar放在我域的lib目录中,则说明耳朵已经成功部署。
如果将所有jar放在名为APP-INF / lib(Weblogic标准)的目录中,那么耳朵也已成功部署。
myApp.ear
- META-INF
- application
- MANIFEST.MF
- APP-INF
- lib
- dependency-1.jar
- dependency-2.jar
- ...
- dependency-n.jar
- myEjb.jar
在同一个项目中,我有其他人不喜欢正常工作的APP-INF / lib目录。
有人知道为什么weblogic无法部署我的耳朵吗?
经过一番调查,我发现了问题根源:这是myEjb.jar模块的清单类路径。查看已接受回复中的评论。
非常感谢。
最佳答案
EAR中的依赖项jar的标准方法是将其放入文档中给出的APP-INF / lib中
http://download.oracle.com/docs/cd/E13222_01/wls/docs81/programming/environment.html#1099434
我怀疑您的第一个EAR中的问题在于您的Manifest.mf中的实际类路径条目中
请参见http://download.oracle.com/docs/cd/E12840_01/wls/docs103/programming/classloading.html#wp1065667上的清单类路径部分
清单类路径条目参考
相对于其他档案
这些条目所在的当前存档
被定义
是否有任何子目录或相对路径不正确?