Jboss EAP 7インスタンスで実行されているJTAとCDIの処理方法を理解するのには苦労しています。私は、コンテナから来るUserTransactionオブジェクトを注入することによってトランザクションを手作業で得ることができますが、メソッドを@Transactionalで注釈を付けると、利用可能なトランザクションに関する例外が発生します。設定がありませんか?私は簡単にそれを動作させるために自分自身のインターセプタを作成する必要がありますが、一貫した例は見つかりませんでした...Jboss EAP 7 CDI JTA @Transactional
0
A
答えて
0
デフォルトのJEEコンテナ管理環境では、エンタープライズBean(通常@Stateless
beans使用される)はトランザクションである。外部からこのようなBeanを入力すると、トランザクションが開かれます。 @javax.transaction.Transactional
アノテーションを使用すると、トランザクションの動作を制御できますが、デフォルトの場合は必要ありません。
例豆:あなたが(例えば、REST経由)サーブレットからMyBean.withinTransaction
を呼び出す場合(ない既に存在する場合)
@Stateless
public MyBean {
public void withinTransaction() {
System.out.println("i'm running within a transaction");
}
@Transactional(TxType.NOT_SUPPORTED)
public void outsideTransaction() {
System.out.println("no transaction available...");
}
}
- 、新しいトランザクションが作成されます。
MyBean.outsideTransaction
に電話すると、トランザクションは作成されません。あなたはwithinTransaction
からthis.outsideTransaction()
を呼び出す場合インターセプタがあるので、(あなたがoutsideTransaction
からthis.withinTransaction()
を呼び出す場合- は、新しいトランザクションが作成されません(インターセプターは専用Beanの境界にバインドされているので)、あなたはまだ
outsideTransaction
で利用可能なトランザクションを持っています - 唯一
outsideTransaction
が第二のBeanAnotherBean
、@Inject
のMyBean
の一部となる場合 - )豆の境界にバインドされ、そしてあなたは、
MyBean.withinTransaction
を呼び出して、新しいトランザクション)が存在していない場合(作成されます。あなたはAnotherBean.outsideTransaction
とMyBean.withinTransaction
の間の豆の境界を横断するからです。
関連する問題
- 1. JBoss EAP 6.2 CDI beans.xml
- 2. トランザクションエラーJTA DATASOURCE JPA CDI
- 3. JBOSS EAP-7のコンテキストルート
- 4. Camel CDIランタイムJBoss EAP 6.1のInstanceAlreadyExistsException
- 5. JBoss 7.xまたはJBoss EAP 6.x
- 6. Log4j2とJboss EAP 7:例外ログ記録
- 7. は、JBoss EAP 6.1でのJBoss EAP 6
- 8. スケジュールジョブjboss EAP
- 9. スタンドアロンCDI + JTAなしJNDI
- 10. は、JBoss EAP 6.4
- 11. のJBoss EAP 6.1
- 12. Jboss EAP 5.1ネイティブメモリリーク
- 13. JTAとSpring @ Transactionalアノテーションの違い
- 14. RestEasy + hibernate + JBoss EAP 5.1.1
- 15. Eclipse for JBoss EAP 5.1
- 16. Kodo on JBoss 7
- 17. JBoss EAP 7でJMSを設定する方法は?
- 18. ArquillianとJBoss EAP 7が組み込まれています
- 19. maven、springアプリケーションをjboss eap 7にデプロイするとき
- 20. JBOSS 7のユーザー定義のjarに属するクラスのjava.lang.NoClassDefFoundError EAP
- 21. JBoss EAP 7のEJB jarでのlog4j2ロギングのコード
- 22. JBoss EAP 7ログパターンフォーマットのドキュメントはどこですか?
- 23. Jboss 7にデプロイされたMDBを見る方法EAP
- 24. jboss-eap-6.2ロギング、ファイルサイズとローテーション
- 25. JBOSS EAP 6 - Siteminder統合コンポーネント
- 26. リソースアダプタバインドSolace、WMQ、JBOSS EAP 6.4
- 27. JbossとEAPコンテナの融合
- 28. EAP 7のSOAP over JMSサービス
- 29. Jboss EAP 6.4モジュールを除外しない
- 30. Java EE 7 CDIマニュアルインスタンシエーション
データベース接続でアプリケーションを設定する方法の完全なJEEチュートリアルよりも、この質問の詳細が十分ではないように感じます。それはStackOverflowの範囲を超えています。おそらくあなたの問題を絞り込めますか?例えば、実際にどのような設定をしているのかを言わずに、「設定がありませんか?」という質問をします。または、あなたが正しくやっていると言っていることをしているかどうかを教えてくれるコードを貼り付けてください。 – Deltharis
自動取引を無効にしたことはありますか? –
@Transactionalアノテーションをどこに配置したのかを知る必要があります。あなたのコードを共有してください。 '@Transactional'はすでにインターセプタバインドであるため、インターセプタは必要ありません。 – Rouliboy