Weblogic EJB部署:无法访问jar内耳中的类

时间:2010-09-07 14:45:13

标签: java deployment java-ee weblogic ejb

我正在尝试将包含ejb应用程序的ear部署到weblogic 9.2服务器中。

此耳朵是使用maven创建的(本身使用耳朵蚂蚁任务)。 Maven产生以下结构:

myApp.ear
 - META-INF
   - application
   - MANIFEST.MF
 - dependency-1.jar
 - dependency-2.jar
 - ...
 - dependency-n.jar
 - myEjb.jar

清单包含一个看起来很好的类路径部分(列出所有依赖jar)

当我尝试部署耳朵时,我收到NoClassDefFoundError异常。

如果我把所有的jar放在我的域的lib目录中,那么耳朵就会成功部署。

如果我把所有的罐子放在一个名为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 个答案:

答案 0 :(得分:2)

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 部分
  

清单Class-Path条目引用   相对于其他档案馆   当前存档中的这些条目   已定义

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

相关问题