皆さん、こんにちは。
外部トピックにサブスクライブするようにメッセージ駆動型 Bean を構成しようとしています。私と同僚は、このような JSE クライアントでトピックをうまく聞くことができました。
public static void main(String[] args) {
TopicSession sess = null;
TopicConnection conn = null;
TopicSubscriber consumer = null;
Properties props = new Properties();
p.put("java.naming.provider.url", "remote://#server-name#:#server-port(4747)#");
p.put("java.naming.factory.initial", "org.jboss.naming.remote.client.InitialContextFactory");
p.put("java.naming.security.principal", "#username#");
p.put("java.naming.security.credentials", "#password#");
InitialContext context = new InitialContext(props);
TopicConnectionFactory factory = (TopicConnectionFactory)context.lookup("jms/RemoteConnectionFactory");
conn = factory.createTopicConnection("#username#", "#password#");
conn.setClientID("#client-id#");
sess = conn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = (Topic)context.lookup("jms/topic/#topic-name#");
consumer = sess.createSubscriber(topic);
consumer.setMessageListener(new MyTopicListener());
try {
conn.start();
// ... loop until done.
} finally {
consumer.close();
sess.close();
conn.close();
}
}
これを MDB に移動するにはどうすればよいですか?
私が知っている限りでは、destinationType、connectionFactoryJndiName、destinationJndiName、initialContextFactory を MessageDriven アノテーションの activationConfig で設定できます。しかし、リモート URL、ユーザー名、およびパスワードはどうでしょうか?
参考までに、JBoss AS 7.1.1 を使用しています。これは MDB 3.0 用です。
回答とコメントをお寄せいただきありがとうございます。