春JTAの構成-設定方法TransactionManager?
-
21-09-2019 - |
質問
しを設定して取引春configとして:
<tx:jta-transaction-manager/>
I収集することになります自動的に発見し、裏付JTAの実装です。まだJBossを起動してこれらのメッセージが検索:
[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>>
そして最終的に参照:
[JtaTransactionManager] [ ] JTA TransactionManager found at fallback JNDI location [java:/Transaction
Manager]
[JtaTransactionManager] [ ] Using JTA UserTransaction: org.jboss.tm.usertx.client.ServerVMClientUserT
ransaction@1f78dde
問題はどのように編集して <tx:jta-transaction-manager/>
タグを明示的に設定し java:/Transaction Manager
JTA実施いて避けるこれらすべてのスタックトレースのログを?(私はあまり好きではないのですが変えるだけのLog4Jのロギングレベル)
更新:私の交換 <tx:jta-transaction-manager/>
以下のconfigるようになったように業務に取り組めました。私推ことはできます。
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManagerName" value="java:/TransactionManager"/>
</bean>
解決
はい、それは大丈夫です。あなたが見ていたスタックトレースも大丈夫だった:<tx:jta-transaction-manager/>
は異なる標準的な場所の数からトランザクションマネージャを取得しようとします。検索JNDIを失敗したすべてのために、あなたはjavax.naming.NameNotFoundException
が表示されます。
java:/TransactionManager
です。他のサーブレットコンテナは、私はTMのための「標準」の場所であることを想定していると思われ、java:/comp/TransactionManager
にデフォルト設定されます。
:のドキュメント
含む、標準的なシナリオについては、WebLogic、WebSphereおよびOC4J、考えます 便利を使用して
<tx:jta-transaction-manager/>
設定要素。この意志 自動的に根本的に検出 サーバーと最高のトランザクションを選択してください プラットフォームで利用可能なマネージャー。 あなたが持っていないことを、この手段 サーバーの構成に固有のアダプタ 以下で説明するように、クラス( 明示的に節)。彼らはむしろ意志 で、自動的に選択され などの標準JtaTransactionManager
デフォルトのフォールバックます。
他のヒント
一般的な「間違い」デプロイJ2EEコンポーネントでjta.jar
および/またはjbossall-client.jar
のようなものをバンドルすることです。このような場合にはダブルチェックしてください、それらを削除します。