簡體   English   中英

我如何向Activemq發送消息

[英]How will I send messages to Activemq

我從不在JMS工作。 最近我下載Activemq和不改變端口從6161661617的所有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM