繁体   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