質問

しを設定して取引春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が表示されます。

JBossは、デフォルトでに結合する。ここで、 java:/TransactionManagerです。他のサーブレットコンテナは、私はTMのための「標準」の場所であることを想定していると思われ、java:/comp/TransactionManagerにデフォルト設定されます。

春の参照から

のドキュメント
  含む、標準的なシナリオについては、

  WebLogic、WebSphereおよびOC4J、考えます   便利を使用して   <tx:jta-transaction-manager/>   設定要素。この意志   自動的に根本的に検出   サーバーと最高のトランザクションを選択してください   プラットフォームで利用可能なマネージャー。   あなたが持っていないことを、この手段   サーバーの構成に固有のアダプタ   以下で説明するように、クラス(   明示的に節)。彼らはむしろ意志   で、自動的に選択され   などの標準JtaTransactionManager   デフォルトのフォールバックます。

他のヒント

一般的な「間違い」デプロイJ2EEコンポーネントでjta.jarおよび/またはjbossall-client.jarのようなものをバンドルすることです。このような場合にはダブルチェックしてください、それらを削除します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top