WAS Liberty Profile中的EclipseLink JPA

时间:2014-01-01 12:55:51

标签: java jpa eclipselink websphere-liberty

是否有人能够使用容器管理事务在WAS Liberty Profile中使用EclipseLink JPA povider?我已使用JPA Container设置配置我的server.xml文件以覆盖默认的OpenJPA实现,但是这会导致副作用,当通过具有事务传播注释的EJB访问时,EntityManager不再参与Container事务。

我也尝试将“eclipselink.target-server”属性设置为“WebSpeher_7”但是当我这样做时,我在com.ibm.ws.Transaction.TransactionManagerFactory类上得到了一个ClassNotFoundException。

2 个答案:

答案 0 :(得分:4)

下午好。这看起来像是你遇到了Bug 407279(https://bugs.eclipse.org/bugs/show_bug.cgi?id=407279)。

您可以通过修改org.eclipse.persistence.transaction.was.WebSphereTransactionController并解决此问题,并进行以下更改:

public class WebSphereTransactionController extends JTATransactionController {
    // Class and method to execute to obtain the TransactionManager
    protected final static String TX_MANAGER_FACTORY_CLASS = "com.ibm.tx.jta.TransactionManagerFactory";
    // OLD VALUE --> "com.ibm.ws.Transaction.TransactionManagerFactory";

希望这有帮助!一定要抓住EclipseLink 2.5.2,因为它有另一个重要的变化(错误412627),以便与Liberty合作!

答案 1 :(得分:0)

我必须使用liberty 16.0.0.2,Spring 4.X和EclipseLink 5.2.X来改变很多东西

我删除了persistence.xml文件 并将spring xml配置更改为:

<bean id="transactionManager"
    class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>


<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="datasource" />
    <property name="persistenceUnitName" value="PERSISTENCE_UNIT"></property>
    <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
    <property name="packagesToScan">
        <list>
            <value>ENTITIES_PACKAGE</value>
        </list>
    </property>
    <property name="jpaPropertyMap">
  <map>
    <entry key="eclipselink.weaving" value="false"/>
  </map>
</property>
    </bean>

对于server.xml

<jpa defaultPersistenceProvider="org.eclipse.persistence.jpa.PersistenceProvider"/>

<featureManager>
    <feature>servlet-3.0</feature>
    <feature>jdbc-4.0</feature>
    <feature>jpa-2.0</feature>
    <feature>localConnector-1.0</feature>
    <feature>jsp-2.2</feature>
</featureManager>