JMSを使用して@MessageDriven
EJBにリクエストスコープのCDI Beanを注入した場合、以下のように指定された任意のFoo
インスタンスは、一度に1回だけonMessage
呼び出し?@RequestScoped @MessageDriven BeanへのCDIインジェクション
つまり、以下の例では、Foo
オブジェクトのメンバ変数を使用して、JSF @RequestScoped
マネージドBeanと同様にサブルーチン全体にステートを格納できますか?同じFoo
オブジェクトがあれば、各MessageDrivenBean
インスタンスは、2つの要求の処理を同時に単離されるであろうように、独自Foo
インスタンスを有するように、次の1つのonMessage
コールから順に再循環されます場合にはOKということ
注意。
@MessageDriven
public class MessageDrivenBean implements MessageListener {
@Inject
private Foo foo;
public void onMessage(Message m) {
foo.doSomething();
}
}
@Named
@RequestScoped
public class Foo {
private String property;
public void doSomething() {
property = ...;
}
}
それはまさに私が望んでいたものであり、注入されたオブジェクトにインスタンスカウンタを置くことで確認しました。 (これは最初から行っていなかったし、右のjavax.enterpriseのものではなくjavax.facesから '@ RequestScoped'アノテーションをインポートしたことが判明しました)。 – wrschneider