2017-10-26 2 views
0

무엇이 나에게 일어나고있는 것은 MDB는 메시지를 수신하고이를 처리하고 심지어 내 서버가이 문제를 해결하는 방법을 완전히

어떤 생각이 시작되지 않은 시도이다 ?

답변

0
서버 시작은 다음과 같은 두 가지 방법 중 하나가 완료되면 당신은 찾을 수

: 응용 프로그램 배포가 완료되면

  1. 사용 ServletContextListener, 서버는 ServletContextListener.contextInitialized 방법
  2. 사용의 MBean 부를 것이다 wildfly의 지원을 받으면 wildfly의 JMX 인터페이스를 통해 mBean을 쿼리하고 서버 상태가 'started'인지 파악할 수 있습니다. 하지만이 경우에만 코드가 야생화에 묶여있을 것입니다.

일단 서버 시작 상태를 파악한 후에는 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) { 

    } 
}