Kein Bean namens 'transactionManager' ist definiert

Ich so konfiguriert haben, dass zwei persistente Einheiten mit der entity-Manager einrichten, wie unten dargestellt:

<bean id="liveEntityManagerFactory" 
          class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
          p:dataSource-ref="LiveDataSource">          

          <property name="persistenceUnitName" value="LivePersistenceUnit" />
    </bean>

    <bean id="archiveEntityManagerFactory" 
          class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
          p:dataSource-ref="ArchiveDataSource">          

          <property name="persistenceUnitName" value="ArchivePersistenceUnit" />
    </bean>

Habe ich dann konfiguriert der Transaktions-Manager als

 <bean id="LiveTransactionManager"
          class="org.springframework.orm.jpa.JpaTransactionManager"
          p:entityManagerFactory-ref="liveEntityManagerFactory"/>

    <bean id="ArchiveTransactionManager"
          class="org.springframework.orm.jpa.JpaTransactionManager"
          p:entityManagerFactory-ref="archiveEntityManagerFactory"/>  

Ursprünglich hatte ich nur eine konfiguriert und es hieß "transactionManager". Addint eine zusätzliche persistente Gerät scheint ein Fehler generiert.
Eine Sache, die ich nicht verstehe, wenn ich konfiguriert zwei hartnäckige Einheiten (jeweils für eine separate Datenbank) benötige ich auch zum konfigurieren einer einzelnen entity-manager und ein Transaktionsmanager für jede Datenquelle?

Den Fehler, den ich bekomme, ist unten gezeigt: (ich Suche die ganze Datei und ich kann nicht finden, überall dort, wo eine Referenz für "transactionManager")

org.springframework.ws.soap.client.SoapFaultClientException: No bean named 'transactionManager' is defined
    at org.springframework.ws.soap.client.core.SoapFaultMessageResolver.resolveFault(SoapFaultMessageResolver.java:37)
    at org.springframework.ws.client.core.WebServiceTemplate.handleFault(WebServiceTemplate.java:774)
    at org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceive(WebServiceTemplate.java:600)
    at org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(WebServiceTemplate.java:537)
    at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:384)
    at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:378)
    at org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndReceive(WebServiceTemplate.java:370)
    at com.ws.client.SoapTest.testFail(SoapTest.java:140)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83)
    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
    at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174)
    at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
    at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
    at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)

Bin ich mit Spring mit Jpa/Hibernate.

Dank

Kommentar zu dem Problem
Sie sollten nur eines TransactionManager und Bohnen sollten benannt werden "transactionManager". Kommentarautor: Luciano
Der Transaktions-manager hat einen Verweis auf die EntityManagerFactoryBean wie oben gezeigt. Wie sollte ich es konfigurieren, wenn ich zwei EntityManagerFactoryBean? (Jeweils für eine separate Datenquelle) Kommentarautor: ziggy
JPATransactionManager funktioniert, wenn Sie nur einen EntityManager. Wenn Sie mehr als eine haben, müssen Sie die Konsistenz zwischen allen Datenquellen, so dass Sie brauchen, zu greifen, zu org.springframework.die Transaktion.jta.JtaTransactionManager. Sind Sie vertraut mit JTA? Kommentarautor: Luciano

InformationsquelleAutor der Frage ziggy | 2012-05-23

Schreibe einen Kommentar