我正在尝试将包含ejb应用程序的ear部署到weblogic 9.2服务器中 .
这个耳朵是使用maven(本身使用耳朵 Ant 任务)创建的 . Maven产生以下结构:
myApp.ear
- META-INF
- application
- MANIFEST.MF
- dependency-1.jar
- dependency-2.jar
- ...
- dependency-n.jar
- myEjb.jar
清单包含一个看起来很好的类路径部分(列出所有依赖jar)
When I try to deploy the ear I get a NoClassDefFoundError exception.
如果我将所有 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模块的清单类路径 . 请参阅已接受回复中的评论
非常感谢 .
1 回答
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上的 Manifest Class-Path 部分
是否有任何子目录或相对路径不正确?