在Websphere上使用JPA/Hibernate时不支持操作异常

在Websphere上使用JPA/Hibernate时不支持操作异常,hibernate,jpa,websphere,jta,myeclipse,Hibernate,Jpa,Websphere,Jta,Myeclipse,问题 尝试更新数据库中的记录时,我遇到以下异常: java.lang.UnsupportedOperationException at org.hibernate.service.jta.platform.internal.WebSphereExtendedJtaPlatform$TransactionManagerAdapter.setRollbackOnly(WebSphereExtendedJtaPlatform.java:139).... 此异常仅在更新时发生。创建、阅读和删除工作 抛

问题

尝试更新数据库中的记录时,我遇到以下异常:

java.lang.UnsupportedOperationException
at org.hibernate.service.jta.platform.internal.WebSphereExtendedJtaPlatform$TransactionManagerAdapter.setRollbackOnly(WebSphereExtendedJtaPlatform.java:139)....
此异常仅在更新时发生。创建、阅读和删除工作

抛出此代码的典型原因是什么

奇怪的扭曲

我们需要使用MyEclipseBlue,并且Maven或ant不用于构建项目;只能使用MyEclipseBlue的构建过程。测试MyEclipseBlue生成的EAR时会抛出上述错误。当我将代码部署为Maven在命令行上生成的EAR时,不会抛出上述异常

我费了很大的劲来验证生成的战争是相同的,但很明显,我遗漏了一些东西

环境

  • Websphere 8.5.5
  • MyEclipse蓝色v10.x
  • Windows 7 x64
思想

我不认为这是类加载的问题,因为引发异常的代码在hibernate-core.jar中。我还回顾了Websphere管理控制台中的类路径报告

这不是JDBC查找问题——两个版本使用相同的方式连接到jndi资源。目前我已经同时部署了它们(之前我只部署了一个或另一个)

源文件

beans.xml(用于CDI)和persistence.xml文件在每个war中都完全相同:

WEB-INF/class/META-INF/persistenc.xml

最后的想法

这两个耳朵有什么不同之处,可以调用不同的代码

谢谢你能提供的任何帮助

在hibernate 4.3中尝试:

<property name="hibernate.transaction.jta.platform"
    value="org.hibernate.service.jta.platform.internal.WebSphereJtaPlatform" />

似乎有效

请注意,这使用的是
WebSphereJtaPlatform
,而不是
WebSphereExtendedJtaPlatform

在hibernate 4.3中尝试:

<property name="hibernate.transaction.jta.platform"
    value="org.hibernate.service.jta.platform.internal.WebSphereJtaPlatform" />

似乎有效


请注意,这使用的是
WebSphereJtaPlatform
,而不是
WebSphereExtendedJtaPlatform

你有没有试过解开罐子并比较里面的东西?可能是重复的?你有没有试过解开罐子并比较里面的东西?可能是重复的
<property name="hibernate.transaction.jta.platform"
    value="org.hibernate.service.jta.platform.internal.WebSphereJtaPlatform" />