4

@Stateful を MDB に注入することは合法ですか?

@Stateful
public class InteruptBean implements Interrupt {
    ....
}

@MessageDriven(...)
public class EchoTrigger implements MessageListener {
    @EJB Interrupt interrupt;

    ....
}

より適切な言い方をすると、ステートフル EJB を使用して、非同期のイベント ドリブン アーキテクチャで状態を渡すことはできますか?

4

2 に答える 2

4

はい、それは意味がありません。ステートフルセッションBeanは、同じクライアントからの複数の要求を処理するためのものであるため、クライアントアクション指向の処理が可能になります。この場合、MDBはBeanクライアントになります。MDBは単一リクエストモデルをサポートします。要求は(メッセージの形式で)MDBに届き、処理されます。したがって、両方のタイプのBeanは処理モデルで一致しません。

于 2011-06-30T04:58:26.587 に答える
2

はい、それは「合法」ですが、無意味です。MDB インスタンスは SLSB のようにプールされます。SFSB がタイムアウトすると、MDB は機能しなくなります。

ある時点で明示的に SFSB を作成してから、MDB を駆動するために送信されるメッセージで SFSB への参照を渡すとうまくいく場合があります。

于 2011-06-30T04:41:52.113 に答える