2017-10-26 17 views
0

上の最後を展開するために、私はどのように行うことができますがMDBがメッセージを受信し、それらを処理しようとさえ私のサーバーが完全にMDBは私に何が起こっている私のwildfly

これを解決する方法任意のアイデアを開始していないということです?

答えて

0

あなたのサーバーの起動は次の二つの方法のいずれかによって終了したかどうかを確認することができます

  1. 利用のServletContextListenerアプリケーションの配備が完了すると、サーバはServletContextListener.contextInitialized方法
  2. 使用するMBeanを呼ぶだろうwildflyのサポートでは、wildflyのJMXインターフェースを介してmBeanに照会し、サーバーの状態が「開始済み」であるかどうかを調べることができます。しかし、あなたのコードは、この場合にのみ、野生動物に結び付けられます。

サーバーの起動状態を把握するオプションを決定したら、MDBのpostconstructメソッドでその値を確認し、サーバーの起動時にのみ先に進む必要があります。

@MessageDriven(...) 
public class MyMdb implements MessageListener { 
    @PostConstruct 
    public void init() { 
     // check if server has started here 
     //if server is not started, sleep and re-check again. 
    } 

    public void onMessage(Message message) { 

    } 
}  
関連する問題