我已经用尽了所有其他研究途径,但现在遇到了一个非常令人沮丧的问题。简而言之,我们有一个在Websphere 9上运行的特定供应商应用程序,并且需要JPA 2.0规范来实现Java持久性。
问题是,尽管在管理控制台中将JPA规范级别设置为2.0,并且直接通过wsadmin命令对其进行了设置,但集群仍继续加载JPA 2.1,最终在应用程序运行时导致重大错误。
我们在以下位置的启动日志中看到了它:
00000001 SharedJPAComp I CWWJP0048I:为以下项目初始化了JPA服务 JPA 2.1规范级别。
在以下位置查看了详细的类加载:
类加载:com.ibm.ws.jpa.runtime.JPA21Runtime来自: 文件:/opt/app/WebSphere90/AppServer_x64/plugins/com.ibm.ws.jpa.container21.jar
并在实际异常期间出现在System.Out日志中:
0000017c BusinessExcep E CNTR0020E:在Bean上调用方法“插入”期间,EJB引发了意外(未声明)异常 “ BeanId([已删除的应用名称],null)”。异常数据: java.lang.AbstractMethodError: javax / persistence / EntityManagerFactory.createEntityManager(Ljavax / persistence / SynchronizationType; Ljava / util / Map;)Ljavax / persistence / EntityManager; 在 com.ibm.ws.jpa.runtime.JPA21Runtime.createEntityManagerInstance(JPA21Runtime.java:165)
此处显示的实际正确设置 Websphere Java Persistence Settings
有人遇到过这种问题吗?迄今为止的研究还没有发现任何东西。在Websphere fixpack 9.0.0.7上运行