2014-04-16 2 views
0

내 프로젝트는 편안하고/SOAP 서비스를 게시합니다. 이들 중 하나는 Websphere 어플리케이션 서버의 JMS 큐에 메시지를 보냅니다. 응용 프로그램은 동일한 응용 프로그램 서버에서 실행됩니다. 필요한 것은이 대기열에 리스너를 정의하는 것입니다. 서비스에서 직접 호출하지 않고이 수신기를 활성화하려면 어떻게해야합니까?메시지 큐 수신기와 편안하고 통합

프로젝트 구조는 다음과 같습니다

Project: 
    -ejb 
    -rest 
    -soap 

사용자는 EJB 컴포넌트를 호출하는 서비스에 메소드를 호출, 그래서 내가 리스너를 초기화하기 수있는 주요 방법이 필요 없다.

나는 대기열에 영구적 인 수신기를 활성화시키는 솔루션이 필요합니다.

는 이미 난 그냥 수신기를 초기화하는 방법을 모르는 소스 코드가 있습니다.

+0

어떤 JMS 대기열을 사용하고 있으며 Websphere에서 어떻게 구성되어 있습니까? 프로젝트 구성 방법 봄, CDI, 다른? –

+0

그것은 중요하지 않습니다 ... 모든 기능이 잘 작동합니다. 가져 오기 – DevJam

+0

그럼 행운을 빌어 다음 시작으로 내 EJB 느릅 나무 초기화 뭔가 하나 개의 영역을 정의하는 것입니다! –

답변

0

는 WebSphere MDB !!!! 그러나 이것을보십시오 :

@MessageDriven(activationConfig={ 
       @ActivationConfigProperty(propertyName="destination",  propertyValue="myDestination"), 
       @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue") 
}) 
public class MsgBean implements javax.jms.MessageListener { 

    public void onMessage(javax.jms.Message msg) { 

     String receivedMsg = ((TextMessage) msg).getText(); 
     System.out.println("Received message: " + receivedMsg); 

    } 

} 
1

확실하지 당신은 문제가 여기서

이 같은 마십시오

  • CDI를 사용 어쩌면 자원으로 javax.jms.Queue를 주입 (또는 WebSphere에서 JMS 자원을 정의를 CDI가 EJB에) 메시지
  • 을 청취하기 위해 MDB (@MessageDriven)를 정의 메시지를
  • 을 보낼 수
  • 사용이 대기열이 지원하는 경우? 확실하지 않음 그것이 작동하는 구성의 많은
+0

Thx. 내 첫 번째 시도는 @Startup 및 Postconst와 같은 ejb 주석과 관련이있다. 그리고 while (1)로 내 Recv 메소드를 호출한다. 그러나하여 WebSphere 밤은이 방법을 지원했다. 그것은 MDB와 함께 가야만합니다 ... – DevJam