2010-09-28 18 views
12

Yay işlemi ile ilgili garip bir sorunla karşılaştım. Benim uygulama EJBs ile bahar kullanır. EJB'ler ayrıca @Transaction ile açıklamalı Spring servis sınıflarını çağırır. İşlem yönetimi için Spring JtaTransactionManager'u kullandım. Uygulama bir EAR dosyası olarak paketlenmiştir ve jboss5.0 üzerinde konuşlandırılmıştır ve iyi çalışıyor. Fakat jboss'a her EAR uygulaması için ayrı bir sınıf yükleyicisi kullanmasını söylediğimde, yaylı başlatma hata veriyor.JTA UserTransaction available - 'userTransaction' veya 'userTransactionName' belirtin

org.springframework.beans.factory.BeanCreationException: Error creating bean 
    with name 'transactionManager' defined in ServletContext resource 
    [/WEB-INF/applicationContext.xml]: Invocation of init method failed; 
nested exception is java.lang.IllegalStateException: No JTA UserTransaction 
    available - specify either 'userTransaction' or 'userTransactionName' or 
    'transactionManager' or 'transactionManagerName' 

İlkbaharın başlatılması neden başarılı değil?

Teşekkür

ben bu sorunu vardı
+0

JBoss'ta hangi ayarı değiştirdiniz? – skaffman

+0

"İzole" özelliğini true olarak ayarlamak için "deployers" dizini altındaki ear-deployer-jboss-beans.xml dosyasını değiştirdim. – Chir

cevap

0

deneyin Eğer yapılandırma fasulye tutun bir yapılandırma sınıfı

@EnableTransactionManagement 

ekleyerek

benim için çalıştı

, belki diğer platforma özel gerekecektir işlem yöneticisinin uygulanması, ancak bu başlamak için iyi bir yerdir.

@Bean 
public PlatformTransactionManager transactionManager() { 
    JpaTransactionManager txManager = new JpaTransactionManager(); 
    txManager.setEntityManagerFactory(entityManagerFactory()); 
    return txManager; 
} 
+0

IBM WAS'da sboot uygulamasını dağıtırken benzer bir sorun yaşıyorum, bu çalışmayı denetler. – Espresso

İlgili konular