Frage

Wir konfigurieren unsere Frühlings-Transaktion im Frühjahr Config wie:

<tx:jta-transaction-manager/>

Ich nehme dies bedeutet, dass Frühling wird automatisch die zugrunde liegende JTA Implementierung entdecken. Wenn wir also JBoss starten sehen wir diese Nachrichten während Frühling gesucht:

[JtaTransactionManager] [ ] No JTA TransactionManager found at fallback JNDI location [java:comp/Tran
sactionManager]
javax.naming.NameNotFoundException: TransactionManager not bound
<<Big stack trace>>    
<<More of the same>>

Und dann schließlich sehen:

[JtaTransactionManager] [ ] JTA TransactionManager found at fallback JNDI location [java:/Transaction
Manager]
[JtaTransactionManager] [ ] Using JTA UserTransaction: org.jboss.tm.usertx.client.ServerVMClientUserT
ransaction@1f78dde

Die Frage ist - wie können wir unseren <tx:jta-transaction-manager/> Tag bearbeiten, um explizit die java:/Transaction Manager JTA Implementierung konfigurieren, so dass wir alle diesen Stack-Traces in den Protokollen vermeiden? (Ich würde es vorziehen, nicht nur auf die Ebene Log4J Logging ändern)


Aktualisieren : Ich <tx:jta-transaction-manager/> mit dem unter Config ersetzt und es scheint zu funktionieren .. Ich vermute, das ist in Ordnung

<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
    <property name="transactionManagerName" value="java:/TransactionManager"/>
</bean>
War es hilfreich?

Lösung

Ja, das ist in Ordnung. Der Stack-Trace Sie sahen war auch in Ordnung: <tx:jta-transaction-manager/> versucht, den Transaktionsmanager von einer Reihe von verschiedenen Standard-Standorten zu erwerben; für jede JNDI-Suche fehlgeschlagen, werden Sie die javax.naming.NameNotFoundException sehen.

java:/TransactionManager ist, wo JBoss standardmäßig bindet; andere Servlet-Container java:/comp/TransactionManager ausfallen, was ich denke, sollte die „Standard“ Position für die TM sein.

Von der Frühling Referenz Dokumentation :

  

Für Standardszenarien, einschließlich   WebLogic, WebSphere und OC4J betrachten   mit der bequemen   <tx:jta-transaction-manager/>   Konfigurationselement. Dieser Wille   automatisch erkennt die darunter liegende   Server und wählen Sie die beste Transaktion   Manager für die Plattform zur Verfügung.   Dies bedeutet, dass Sie nicht haben wird   configure serverspezifische Adapter   Klassen (wie im Folgenden erörtert   Abschnitte) explizit; sie werden vielmehr   automatisch gewählt werden, wobei die   Standard JtaTransactionManager als   Standardrückfall.

Andere Tipps

Ein gemeinsamer „Fehler“ ist, die Dinge zu bündeln wie jta.jar und / oder jbossall-client.jar in der J2EE-Komponente, die Sie bereitstellen. Überprüfen Sie bitte und entfernen Sie sie, wenn dies der Fall ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top