Glassfish 3:为什么我必须将所有库部署到域/ lib /才能使其工作?

时间:2010-09-24 17:27:20

标签: java glassfish glassfish-3

我刚从另一个小组手中接过了一个项目。 EJB会话bean / web服务。它在JavaCAPS 6上没有任何问题地部署。

但是,在Oralce Glassfish V3(3.0.1 Build 22)上,当我部署jar文件(Applicaton / EJB Module)时,它一直抱怨某些外部库(包含在jar中),无法找到。

注释处理错误:java.lang.NoClassDefFoundError:org / apache / commons / vfs / FileSystemException |#]

Apache VFS jar在jar中,但找不到它。

但是,如果我将jar及其依赖项移动到$ Glassfish home / domains / domain1 / lib

一切都很好。

我们在这里做错了什么?

由于

1 个答案:

答案 0 :(得分:2)

在v2。*支持ejb模块的根级库jars但由于JAVA EE 6安全限制,glasssfish V3.1不支持在ejb-jar模块(* .jar文件)中部署jar库。因此,您可以使用compatibility = v2属性来部署

例如;

asadmin {server_parameters} deploy --property compatibility=v2 {package}.jar 

解决方法注意:在Glassfish V3.0中,不支持兼容性属性。必须升级V3.1或将库放到{GlassfishHome} / lib目录