我的目标非常简单:使用ant构建一个EAR,其中包含1个EJB和1个jar,其中包含所有依赖项。这个名为common.jar的jar中有供应商jar文件以及EJB依赖的其他xml文件,在运行时需要能够看到这些文件。。。。
到目前为止,我把所有东西都正确地包装成这样的耳朵:
EARFILE.ear
-EJBFILE.jar
/META-INF
-MANIFEST.MF
-common.jar
/META-INF
-MANIFEST.MF
/lib
-(all vendor jars inside here)
-(All the xml config files are inside the root of the common.jar)
在MANIFEST.MF中
Class-path: ../../common.jar
在MANIFEST.MF中
公用.jar
是。。。
Class-path: ../lib/some_common.jar
当我部署它时,当我尝试启动服务器时,appserver(websphere)找不到JAR文件。我得到了
ClassDefNotFoundError
因为当我尝试启动实例时,EJB中的类找不到供应商JAR文件。不过,我知道common.jar的设置是正确的,否则EJB就不会编译了,因为它需要在javac的类路径上有这些供应商jar。
所以我想知道的是:
-
如何让运行时正确查看供应商jar文件。
-
EJB能够在运行时看到xml文件吗?我之所以担心这一点,是因为这些xml文件位于EJB外部,在EAR中的jar中,它甚至不是一个模块,而只是EAR中的jar。
-