![](/img/trans.png)
[英]TransactionManager from Spring or JNDI? (JBOSS + Spring 3 + Hibernate 4 + 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.