Spring 3.0.5에서 작성되었으며 JMS를 사용하여 메시지를 교환하는 애플리케이션이있다. 메시지를 수신하는 빈은 jms
네임 스페이스를 사용하여 구성됩니다. 나는이 방법이 더 이상 호출되는 Message
객체를 얻기 위해 수신 방법을 변경할 때이Spring JMS 네임 스페이스를 사용할 때 메소드가 호출되지 않는다.
class MyService {
public void receive(String msg) {
...
}
}
봄의 구성은, 그러나이
<jms:listener-container destination-type="queue">
<jms:listener destination="queue.test" ref="myService" method="receive"/>
</jms:listener-container>
모양처럼 클래스 보인다.
class MyService {
public void receive(TextMessage msg) {
...
}
}
나는 난 그냥 MessageListenerAdapter
를 사용할 수 있음을 인식하지만 더 많은 구성 오버 헤드와이 작동하지 않는 이유를 난 그냥 궁금입니다.
어떤 통찰력이라도 대단히 감사합니다. 당신이 명시 적를 구성하는 것이 necesarry 아니에요, 그래서
프랭크
라고합니다. 'MessageListenerAdapter'가 원시'Message' 객체를 기대하는 메소드를 완벽하게 호출 할 수 있다는 것입니다. 문서에는'DefaultTextMessageDelegate' 예제가 들어 있습니다. 필자의 경우에는 메시지 속성에 액세스 할 수 있어야합니다. 'MessageListener' 인터페이스를 구현한다는 것은 해당 클래스에 하나의 메소드 만 가질 수 있다는 것을 의미합니다. 그러면 여러 큐에서 들어오는 메시지를 다른 메소드로 전달해야합니다. – magiconair
@magiconair : 음, 잘 보였다. 나는 교정했다. – skaffman
''는 디폴트'MessageListenerAdapter'를 설정 합니다만 원시 메시지를 얻기 위해서는 메시지 변환기를'null'으로 설정하여 내용 추출을 비활성화해야 할 수도 있습니다. 그러나, 그것은' '로는 불가능한 것처럼 보입니다. –
magiconair