我正在尝试将包含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上的清单类路径部分


  清单类路径条目参考
  相对于其他档案
  这些条目所在的当前存档
  被定义


是否有任何子目录或相对路径不正确?

07-27 15:12