簡體   English   中英

訪問EntityManager時出錯-openjpa-WAS自由配置文件

[英]Error while accessing EntityManager - openjpa - WAS liberty profile

我目前正在研究WebSphere Application Server Liberty Profile 8.5.5.7上的openjpa項目 數據庫是MySQL

在運行時,當我嘗試訪問實體管理器時 ,出現如下錯誤:

由以下原因引起:javax.ejb.EJBException:請參見嵌套異常;請參見嵌套異常。 嵌套的異常是:java.lang.Exception:請參見com.ibm.ejs.container.util.ExceptionUtil.EJBException(ExceptionUtil.java:461)上的嵌套Throwable ... 27更多
造成原因:java.lang.Exception:請參見com.ibm.ejs.container.util.ExceptionUtil.Exception(ExceptionUtil.java:317)中的嵌套Throwable ... 27更多

造成原因:java.lang.AbstractMethodError:org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(Ljavax / persistence / SynchronizationType; Ljava / util / Map;)Ljavax / persistence / EntityManager;
在com.ibm.ws.jpa.container.v21.internal.JPA21Runtime.createEntityManagerInstance(JPA21Runtime.java:104)在[內部類]

當前我正在使用以下依賴項:org.apache.openjpa:openjpa-all-2.4.0

在部署期間,我看到以下堆棧跟蹤

[err] 458應用名稱INFO [默認執行器線程16] openjpa.jdbc.JDBC-使用字典類“ org.apache.openjpa.jdbc.sql.MySQLDictionary”(MySQL 5.6.25-0ubuntu0.15.04.1,MySQL- AB JDBC驅動程序mysql-connector-java-5.0.8(修訂:$ {svn.Revision})。

[err] 502應用名稱INFO [默認執行器線程16] openjpa.jdbc.JDBC-使用JDBC驅動程序MySQL-AB連接到MySQL 5.5版MySQL-AB JDBC驅動程序mysql-connector-java-5.0.8(修訂版:$ {svn。修訂版})。

但這不會中斷我的部署過程,我仍然可以使用我的服務。

向server.xml添加了以下功能

<featureManager>
    <feature>webProfile-7.0</feature>
    <feature>localConnector-1.0</feature>
    <feature>jndi-1.0</feature>
    <feature>jdbc-4.1</feature>
    <feature>jaxrs-2.0</feature>
    <feature>jpa-2.1</feature>
</featureManager>

假定這是一個兼容性問題,我使用了2.1.2之前的openjpa舊版本。
從server.xml禁用了jpa-2.1功能
但是,沒有運氣。

對於以上問題的任何信息/參考/解決方案均深表感謝。 謝謝


更新:感謝您的更新。 將server.xml更新為

 <featureManager> <feature>localConnector-1.0</feature> <feature>jndi-1.0</feature> <feature>jdbc-4.1</feature> <feature>jpa-2.0</feature> <feature>jaxrs-2.0</feature> <feature>jaxrsClient-2.0</feature> <feature>ejbLite-3.2</feature> </featureManager> 

仍然無法選擇EntityManager。

[ERROR]錯誤處理期間發生錯誤,請放棄! 嵌套的異常是:javax.ejb.EJBException:請參見嵌套的異常;請參見嵌套異常。 嵌套的異常是:java.lang.NullPointerException,同時使用params []調用public void foo()。
[錯誤] SRVE0777E:應用程序類'org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage:116'java.lang.RuntimeException:org.apache.cxf.interceptor.Fault引發的異常:嵌套異常是:javax.ejb.EJBException :參見嵌套異常; 嵌套的異常是:java.lang.NullPointerException,同時使用params []調用public void foo()。
在[內部類]上的org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:116)
引起原因:org.apache.cxf.interceptor.Fault:嵌套異常是:javax.ejb.EJBException:請參見嵌套異常;請參見嵌套異常。 嵌套的異常是:
使用params []調用public void foo()時發生java.lang.NullPointerException。
在org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:167)
...還有1個
引起原因:javax.ejb.EJBTransactionRolledbackException:嵌套異常是:javax.ejb.EJBException:請參見嵌套異常;請參見嵌套異常。 嵌套的異常是: [內部類]com.ibm.ejs.container.BusinessExceptionMappingStrategy.mapCSIException(BusinessExceptionMappingStrategy.java:124)上的 java.lang.NullPointerException

您已指定jpa-2.1,但OpenJPA不支持JPA 2.1。 WebSphere隨附的JPA 2.1提供程序是EclipseLink。 您或者需要從persistence.xml中刪除對OpenJPA的引用,並使用默認的EclipseLink(盡管有一些已知的行為更改 ),或者按照Gas的建議,如果需要,請用jpa-2.0替換webProfile-7.0和jpa-2.1。您想繼續使用OpenJPA。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM