2010-09-07 29 views
1

我试图部署包含EJB应用程序到的WebLogic 9.2服务器的耳朵。Weblogic的EJB deployement:班在耳内罐子不可访问

这耳朵使用maven(本身使用耳ant任务)创建的。 Maven的产生以下结构:

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

的清单包含看起来不错(所有依赖JAR列)

当我尝试部署耳朵,我收到了NoClassDefFoundError的异常的类路径部分。

如果我把我所有的罐子在我的域的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模块的清单类路径。参见接受的回复中的评论。

非常感谢。

回答

2

的依赖罐子的EAR内的标准方法是把它们放在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

Class-Path清单

的Class-Path清单条目指 到其他档案相对于这些条目 定义

的 当前档案是否有任何子目录或相对路径不正确的?

+0

谢谢JoseK。我已经了解到,APP-INF/lib的耳朵是weblogic标准。但是我的构建系统没有这个目录就会产生耳朵。制作的清单也很好看。而最奇怪的事实是用同样的工具建立的其他耳朵工作正常。 – Guillaume 2010-09-08 07:45:35

+0

@Guillaume:我想知道是否有任何依赖jar包依赖于另一个捆绑的依赖 - 因此引发问题? – JoseK 2010-09-08 08:03:52

+0

我发现了这个问题:它是ejb.jar模块上的Manifest Class-Path问题,而不是耳朵的META-INF/MANIFEST类路径中的问题。非常感谢你的帮助。 – Guillaume 2010-09-08 13:53:59