我想在 GlashFish 4.0 中将 EclipseLink 从 2.5.0 更改为 2.5.1。我已经下载了OSGi捆绑包并替换了以下jar文件
- org.eclipse.persistence.antlr.jar
- org.eclipse.persistence.jpa.jar
- org.eclipse.persistence.asm.jar
- org.eclipse.persistence.jpa.modelgen.jar
- org.eclipse.persistence.core.jar
- org.eclipse.persistence.oracle.jar
- javax.persistence.jar
在$GLASSFISH_HOME/glassfish/modules
.
完成此操作后,版本仍然保持不变。以下代码,
String version = org.eclipse.persistence.Version.getVersion();
System.out.println("EclipseLink version : " + version);
仍显示版本 2.5.0。
捆绑包不包含eclipselink-x.x.x.jar
。
还需要更改哪些内容?我使用的是 NetBeans 7.2.1。
您忘记了一些文件,您需要完整的列表:
- org.eclipse.persistence.antlr.jar
- org.eclipse.persistence.asm.jar
- org.eclipse.persistence.core.jar
- org.eclipse.persistence.dbws.jar
- org.eclipse.persistence.jpa.jpql.jar
- org.eclipse.persistence.jpa.jar
- org.eclipse.persistence.jpa.modelgen.jar
- org.eclipse.persistence.moxy.jar
- org.eclipse.persistence.oracle.jar
- javax.persistence.jar
您不必重命名文件,您可以从org.eclipse
开始删除旧文件,并将所需的文件复制到modules
文件夹中。这应该可以解决问题。
更新:如果它不起作用,您可能需要清除OSGI缓存。为此,请关闭服务器并删除felix
的文件夹
$GLASSFISH_HOME/glassfish/domains/domain/osgi-cache/
重新启动服务器并稍等片刻,它必须读取 OSGI 模块信息才能重建缓存。