当前位置:  开发笔记 > 编程语言 > 正文

如何在glassfish中使用第三方库?

如何解决《如何在glassfish中使用第三方库?》经验,为你挑选了2个好方法。

我需要从我的EJB3应用程序连接到MongoDB实例,在glassfish 3.0.1上运行.Mongo项目提供了一组驱动程序,我可以在独立的Java应用程序中使用它们.

我如何在Java EE应用程序中使用它们?或者更好的措辞:当我的应用程序在EJB容器中运行时,如何使第三方库可用于我的应用程序?

目前,在部署尝试从库导入的bean时,我收到了java.lang.NoClassDefFoundError:

[#|2010-03-24T11:42:15.164+0100|SEVERE|glassfishv3.0|global|_ThreadID=28;_ThreadName=Thread-1;|Class [ com/mongodb/DBObject ] not found. Error while loading [ class mvs.core.LocationCacheService ]|#]
[#|2010-03-24T11:42:15.164+0100|WARNING|glassfishv3.0|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=28;_ThreadName=Thread-1;|Error in annotation processing: java.lang.NoClassDefFoundError: com/mongodb/DBObject|#]

[#|2010-03-24T11:42:15.259+0100|SEVERE|glassfishv3.0|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=28;_ThreadName=Thread-1;|Exception while loading the app
org.glassfish.deployment.common.DeploymentException: java.lang.NoClassDefFoundError: com/mongodb/DBObject
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:171)
at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:125)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:224)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:338)

我尝试将其添加到NetBeans项目(属性 - >库 - >编译 - >添加Jar,启用'包'),我也尝试手动将jar文件复制到$ GF_HOME/glassfish/domains/domain1/lib(其中mysql-connector已驻留).

我是否需要使用容器"注册"库?通过注释引用它?扩展容器的类路径以包含库?



1> Pascal Thive..:

嗯......你不应该把这个"司机"放进去glassfishv3/glassfish/domains/domain1/lib/ext吗?



2> Sebastien Lo..:

您可以将共享库放到域的lib/ext中.通常在此域路径中添加commons-logging和jdbc驱动程序.

普通类装载机

GlassFish v2有一个定义良好的类加载器层次结构,它将公共类加载器标识为处理共享库的正确方法.所以简而言之,将库和其他框架JAR放在domains/domain1/lib中就是你需要做的.

lib /,而不是lib/ext

问我这个问题的人试图将这些库放在domains/domain1/lib/ext中,这会触发一个有趣的ClassNotFoundError用于核心Java EE类,例如javax.servlet.http.HttpServlet.Shing Wai Chan很快解释了domains/domain1/lib/ext是-Djava.ext.dirs的一部分,它使得任何JAR都被视为JDK扩展,这意味着放置在那里的Web应用程序框架将在webcontainer实现类之前加载因为他们在类加载器委托链中更高.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有