アクティブなMQを使用してJMSアプリケーションを学習したい。
apache-activemq-5.5.1をダウンロードしてサーバ
を起動し、サンプルコードを見つけましたが動作しません。なぜ次の例外が起こるのですか?
注:私は私のプロジェクトにActiveMQのライブラリを追加し、ライブラリは、このエラーが報告されorg.slf4jモジュールActive MQを使用したサンプルJMSの例
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.MessageListener;
//JMS Producer
public class JMSProducer {
public void produce() {
String url = "tcp://localhost:61616";
ConnectionFactory factory = new ActiveMQConnectionFactory(url);
try {
Connection connection = factory.createConnection();
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic("TestTopic");
MessageProducer producer = session.createProducer(topic);
TextMessage msg = session.createTextMessage();
msg.setText("Hello JMS World");
producer.send(msg);
}
catch(JMSException exp) {
}
}
}
//JMS Consumer
public class JMSConsumer {
public void consume() {
String url = "tcp://localhost:61616";
ConnectionFactory factory = new ActiveMQConnectionFactory(url);
try {
Connection connection = factory.createConnection();
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic("TestTopic");
MessageConsumer consumer = session.createConsumer(topic);
JMSMessageListener listener = new JMSMessageListener();
consumer.setMessageListener(listener);
connection.start();
}
catch(JMSException exp) {
}
}
}
//JMS Message Listener
public class JMSMessageListener implements MessageListener {
@Override
public void onMessage(javax.jms.Message msg) {
System.out.println(msg.toString());
}
}
1 - これは私を助けました。私はJMSを使用するさまざまな方法を試していましたが、ActiveMQ 5.9.1より古いバージョンのSLF4Jを使用していました。 pomのglassfishの依存関係をコメントアウトすると、すべてが機能しました。 – rishimaharaj