簡體   English   中英

如何在JBoss Spring中使用JTA

[英]how to use JTA in jboss spring

我正在通過休眠使用JTA,我有一個Ear文件,當我在glassfish中部署Ear文件時,它具有多個war文件,它運行正常,但是當我在Jboss中運行該Ear文件時,它給我一些錯誤

 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [persistenceContext.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: EW] Unable to build EntityManagerFactory
16:54:55,678 ERROR [stderr] (MSC service thread 1-8)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1486)
16:54:55,678 ERROR [stderr] (MSC service thread 1-8)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
16:54:55,679 ERROR [stderr] (MSC service thread 1-8)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
16:54:55,680 ERROR [stderr] (MSC service thread 1-8)    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
16:54:55,680 ERROR [stderr] (MSC service thread 1-8)    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
16:54:55,681 ERROR [stderr] (MSC service thread 1-8)    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
16:54:55,682 ERROR [stderr] (MSC service thread 1-8)    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
16:54:55,682 ERROR [stderr] (MSC service thread 1-8)    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1117)
16:54:55,683 ERROR [stderr] (MSC service thread 1-8)    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:922)
16:54:55,683 ERROR [stderr] (MSC service thread 1-8)    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
16:54:55,684 ERROR [stderr] (MSC service thread 1-8)    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
16:54:55,685 ERROR [stderr] (MSC service thread 1-8)    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
16:54:55,685 ERROR [stderr] (MSC service thread 1-8)    at com.eyewatch.dao.util.DAOLocator.<clinit>(DAOLocator.java:15)

要使用JBOSS JTA,除了在<jta-data-source>之外,您不應該在persistence.xml配置任何內容。

要使用Spring應用程序中的JBOSS JTA,只需將其添加到配置中即可:

<tx:jta-transaction-manager/>

注意,最好允許將持久性單元提高到JBOSS:將persistence.xml放入jar的META-INF中。 從JNDI獲取entityManagerFactory

persistence.xml

<property name="jboss.entity.manager.factory.jndi.name" value="persistence/MY-UNIT"/>

application.xml

<jee:jndi-lookup id="emf" jndi-name="persistence/MY-UNIT"/>

<bean id="entityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean"
          p:entityManagerFactory-ref="emf"/>

有了它,您可以繼續在服務中使用@PersistenceContext

暫無
暫無

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

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