GlassFish 4.1在glassfish/modules
中提供了EclipseLink 2.5.x.我想在我的应用程序中使用2.6.4,并在使用maven-ear-plugin:2.10.1
和
<configuration>
<finalName>linuxtracker2</finalName>
<version>7</version>
<defaultLibBundleDir>lib</defaultLibBundleDir>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
将EJB和WAR模块作为依赖项(否则为默认值)。应用程序部署并正常工作,但我怀疑EclipseLink 2.5存在问题,我想要覆盖它,因为我不想(双重)配置服务器以提供依赖性。
到目前为止,我发现GlassFish has a classloader hierarchy并且加载请求被委托给可以满足它的最顶级父级,但是文档当然无法解释如何使用它。从我的理解中我可以说Circumventing Class Loader Isolation与我想要的相反(将类加载器隔离以使用我的打包依赖项)。
我的应用程序设置是标准:实体类和EJB接口,EJB实现,Web前端和EAR maven模块。
相关问题:
答案 0 :(得分:2)
Oracle不再支持GlassFish,因此现在只是一个开源项目。文档可以在https://glassfish.java.net/documentation.html找到 - 您需要下载“管理指南”PDF,但其他文档也非常有用。
您在这里尝试做的事情在GlassFish中是不可能的,但是Payara Server中添加了一项功能,该功能源自GlassFish(免责声明:我为他们工作)。
对于EAR文件,Payara Server添加了在<classloading-delegate>false</classloading-delegate>
文件中添加META-INF/glassfish-application.xml
的选项。当您在EAR中打包自己的版本时,这应该使用Payara Server中的库来停止您的应用程序。
但是,对于您的特定用例,您不需要在Payara Server already comes with EclipseLink 2.6.4
中使用latest build, 171.1后使用此功能