MDBがメッセージを受信したときにイベントを生成して処理しようとしています。ここで私がやっているものです:メッセージ駆動型Beanでイベントが機能しない
public class MDBBooks implements MessageListener {
@Inject
private Event<Update> messageReceived;
public MDBLibri() {
}
@Override
public void onMessage(Message message) {
System.out.println("Message received");
try {
Update u = message.getBody(Update.class);
messageReceived.fire(u);
if(u != null){
... stuff
}
} catch (JMSException ex) {
System.out.println("JMSException: " + ex.getMessage());
}
}
public void eventHandler(@Observes Update up) {
System.out.println("There was an update");
}
}
をしかし、それだけでは動作しません、文字列は、それがGlassFishのコンソールに印刷されていない「アップデートがありました」。私は本当に何が問題なのかは分かりません。私の教科書はそれと同じようにしています。私はイベントが正常に発生すると仮定していますが、イベントハンドラは通知されません。
[それ以外は関係のない質問](実装に関する)と同様の回答があります(http://stackoverflow.com/questions/43111276/observable-pattern-in-remote-ejb/43120204#43120204) –
OPがここで必要とする "実装"全体は、オブザーバメソッドを別のクラスに移動することです。 – Siliarus
確かに、私のコメントは、OPのためだけに(私はおそらくそれをより良いと言えるかもしれない)見るためのものとして意図されていた。あなたの答えは正しかったので、私はそれに応じて投票しました –