[英]How will I send messages to Activemq
我從不在JMS
工作。 最近我下載Activemq
和不改變端口從61616
到61617
的所有conf/activemq-*.xml
files.I在瀏覽器中運行的命令提示符,然后打開控制台頁面下面的命令。
C:\Users\Infratab Bangalore\Desktop\Queueing\apache-activemq-5.8.0\bin>activemq
現在我想使用JMS
將來自java代碼的消息發送到Activemq
。為此,我編寫了以下代碼。 並使用Apache Tomcat server.it運行我的代碼
此代碼在Eclipse中實現。
package PackageName;
import java.io.IOException;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.activemq.ActiveMQConnectionFactory;
public class MessageProducer extends HttpServlet {
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
try {
//created ConnectionFactory object for creating connection
ConnectionFactory factory = new ActiveMQConnectionFactory("admin", "admin", "tcp://localhost:61617");
//Establish the connection
Connection connection = factory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Queue queue = session.createQueue("Test");
//Added as a producer
javax.jms.MessageProducer producer = session.createProducer(queue);
// Create and send the message
TextMessage msg = session.createTextMessage();
msg.setText("TestMessage");
producer.send(msg);
} catch (Exception e) {
// TODO: handle exception
}
}
}
我收到以下錯誤
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
org.apache.activemq.ActiveMQPrefetchPolicy.<clinit>(ActiveMQPrefetchPolicy.java:30)
org.apache.activemq.ActiveMQConnectionFactory.<init>(ActiveMQConnectionFactory.java:88)
PackageName.MessageProducer.service(MessageProducer.java:20)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
你能建議我,我寫錯了嗎?
謝謝。
從中下載common-logging.ja r文件
http://grepcode.com/snapshot/repo1.maven.org/maven2/commons-logging/commons-logging/1.1.3/
並將其放入類路徑並再次運行。
該消息來自ActiveMQPrefetchPolicy的第38行,它發生在類的初始化期間(因為它是一個靜態字段)(grepcode http://grepcode.com/file/repository.springsource.com/org中的行示例) 。 apache.activemq / com.springsource.org.apache.activemq / 5.3.0 / org / apache / activemq / ActiveMQPrefetchPolicy.java#38 )。 您將需要common-logging.jar,因為它是要運行的應用程序的類路徑中的依賴項。 您可能會收到其他錯誤。 我建議您在互聯網上關注一些示例,例如ActiveMQ in Action的第8章示例 - > http://code.google.com/p/activemq-in-action/source/browse/# SVN%2Ftrunk%2Fexamples%2Fchapter8%2Fjms-web應用-的JBoss%253Fstate%253Dclosed
問候,
欒
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.