1

たとえば、Web コンテキストから EJB メソッドを呼び出すとします。EJB にはローカル Bean を使用したコンテナ管理トランザクション (CMT) があり、そのメソッドにはrequired_new transactional属性があります。EJB メソッドがシステム例外をスローした場合、クライアントは何を取得しますか? つまり、トランザクションはロールバックされます。それで、クライアントはEJBTransactionRolledBackException単に取得しますEJBExceptionか?

前もって感謝します。

4

1 に答える 1

2

EJB 3.1 仕様のセクション 14.3.1「セッション Bean のビジネス インターフェース メソッドおよび非インターフェースからの例外」の表 15 では、RequiresNew メソッドによって非 AppException がスローされると、クライアントが EJBException を受信することが示されています。EJBTransactionException は、EJB メソッドが呼び出し元のトランザクションを使用して実行され、EJB コンテナーがシステム例外のためにトランザクションにロールバックのマークを付けたときにスローされることを意図しています。

于 2013-07-16T18:27:45.860 に答える