トピックをリッスンして、そのトピックに送信されたメッセージを受信するサービスを実装しようとしています。コードは非常に単純です。
@MessageDriven(mappedName="jms/TEST", activationConfig={
@ActivationConfigProperty(propertyName="destinationType",propertyValue="javax.jms.Topic"),
@ActivationConfigProperty(propertyName="subscriptionName",propertyValue="TEST")
})
public class MessageListener implements MessageListener {
private static final Logger logger = Logger.getLogger(MessageListener.class);
@Override
public void onMessage(Message arg0) {
logger.info("Receiving " + arg0);
}
}
リスナーは Glassfish にデプロイされます。Glassfish では、管理オブジェクト リソースも追加します。
JNDI Name: jms/TEST
Resource Adaptor: jmsra
Resource Type: javax.jms.Topic
Class Name: com.sun.messaging.Topic
Name: TEST
Physical Name: TEST
Glassfishにも別のサービスがあり、トピックTESTにメッセージを送信しています。ただし、リスナーはメッセージをまったく受信しません。メッセージ駆動型 Bean を使用せずに同じトピックをリッスンする別のサービスを作成し、受信できます。つまり、メッセージは問題なく送信されます。私は自分の豆に何か悪いことをしたのだろうか。
L