当从webservice接收到信息的时候,消息生产者producer立刻把收到的消息放入到jms里面,消费者cusomer这时要设置一个监听,当生产者发送消息时,只要消息被发出来,消费者就会接收到消息,然后进行相应的操作。

在tomcat里面,要进行配置。

首先在tomcat安装目录里面,对conf/context.xml进行配置,加入以下代码:

<Resource

        name="jms/FailoverConnectionFactory"

        auth="Container"

        type="org.apache.activemq.ActiveMQConnectionFactory"

        description="JMS Connection Factory"

        factory="org.apache.activemq.jndi.JNDIReferenceFactory"

    brokerURL="failover:(tcp://localhost:61616)?initialReconnectDelay=100&amp;maxReconnectAttempts=5"

        brokerName="localhost"

        useEmbeddedBroker="false"/>

    <Resource

        name="jms/NormalConnectionFactory"

        auth="Container"

        type="org.apache.activemq.ActiveMQConnectionFactory"

        description="JMS Connection Factory"

        factory="org.apache.activemq.jndi.JNDIReferenceFactory"

        brokerURL="tcp://localhost:61616"

        brokerName="localhost"

        useEmbeddedBroker="false"/>

    <Resource name="jms/topic/MyTopic"

        auth="Container"

        type="org.apache.activemq.command.ActiveMQTopic"

        factory="org.apache.activemq.jndi.JNDIReferenceFactory"

        physicalName="MY.TEST.FOO"/>

    <Resource name="jms/queue/MyQueue"

        auth="Container"

        type="org.apache.activemq.command.ActiveMQQueue"

        factory="org.apache.activemq.jndi.JNDIReferenceFactory"

        physicalName="MY.TEST.FOO.QUEUE"/> 

具体也不晓得这个是做什么的,看上去貌似是配置jndi的,我没用jndi的方式,加上这个,也正常运行。所以还是加上吧。

然后在web.xml里面,加入监听的类,这个类是自己写的。

  <!-- 添加jms监听 -->
<servlet>
<servlet-name>jms-listener</servlet-name>
<servlet-class>
com.message.JMSListener
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

然后就建立这个类:

package com.message;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import javax.jms.Session;
import javax.servlet.http.HttpServlet; import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.log4j.Logger;public class JMSListener extends HttpServlet implements MessageListener {
/**
*
*/
private static final long serialVersionUID = -8455543162505698971L;
private Logger logger=Logger.getLogger(JMSListener.class); ConnectionFactory connectionFactory;
Connection connection=null;
Session session;
Destination destination;
MessageConsumer consumer;
int i; public JMSListener(){
String url = "tcp://localhost:61616";
String queue ="NewNocPacket";
connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD, url);
try {
connection = connectionFactory.createConnection();
session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue(queue);
consumer = session.createConsumer(destination);
consumer.setMessageListener(this);
connection.start();
} catch (JMSException e) {
// TODO Auto-generated catch block
logger.error("===========cusumer create error");
e.printStackTrace();
}
} @Override
public void onMessage(Message message) {
// TODO Auto-generated method stub
ObjectMessage msg=(ObjectMessage) message;try {
logger.info("=========hello ===========");
i++;
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }

原理大概是这样,上面代码不要照抄的。

然后就ok了,部署一下项目,建立一个消息的发送者,消息到达后,监听就会自动执行,打印出onmessage里面的话。

tomcat监听activemq jms配置的更多相关文章

  1. 配置Tomcat监听80端口 配置Tomcat虚拟主机 Tomcat日志

    配置Tomcat监听80端口 • vim /usr/local/tomcat/conf/server.xml Connector port=" protocol="HTTP/1.1 ...

  2. Tomcat介绍、安装jdk、安装Tomcat、配置Tomcat监听80端口

    1.Tomcat介绍 2.安装jdk下载:wget -c http://download.oracle.com/otn-pub/java/jdk/10.0.1+10/fb4372174a714e6b8 ...

  3. 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

    6月27日任务 16.4 配置Tomcat监听80端口16.5/16.6/16.7 配置Tomcat虚拟主机16.8 Tomcat日志扩展邱李的tomcat文档 https://www.linuser ...

  4. Linux centosVMware 配置Tomcat监听80端口、配置Tomcat虚拟主机、Tomcat日志

    一.配置Tomcat监听80端口 关闭tomcat报错 [root@davery src]# /usr/local/tomcat/bin/shutdown.sh 重装tomcat即可 vim /usr ...

  5. Spring Boot 监听 Activemq 中的特定 topic ,并将数据通过 RabbitMq 发布出去

    1.Spring Boot 和 ActiveMQ .RabbitMQ 简介 最近因为公司的项目需要用到 Spring Boot , 所以自学了一下, 发现它与 Spring 相比,最大的优点就是减少了 ...

  6. Tomcat监听443端口的方法

    当我们需要更安全的访问网站的时候就会选择使用https协议,而https协议默认的端口号为443端口,这就是我们为什么向让Tomcat监听在443端口的原因,因为监控在非80端口和443端口的web服 ...

  7. Oracle 11g RAC 环境下单实例非缺省监听及端口配置

    如果在Oracle 11g RAC环境下使用dbca创建单实例数据库后,Oracle会自动将其注册到缺省的1521端口及监听器.大多数情况下我们使用的为非缺省监听器以及非缺省的监听端口.而且在Orac ...

  8. Tomcat监听shutdown释放数据库连接池

    开发时因为更新代码,频繁重启Tomcat,遇到一个问题:在执行shutdown脚本后,Tomcat进程没有关闭依然存在(但是HTTP服务已经停止),需要手动执行kill命令才行.查了一些资料结合经验, ...

  9. 009-Spring Boot 事件监听、监听器配置与方式、spring、Spring boot内置事件

    一.概念 1.事件监听的流程 步骤一.自定义事件,一般是继承ApplicationEvent抽象类 步骤二.定义事件监听器,一般是实现ApplicationListener接口 步骤三.启动时,需要将 ...

随机推荐

  1. 第七章 二叉搜索树 (d1)AVL树:重平衡

  2. My97DatePicker 日历控件

    My97DatePicker 是一款非常强大的日历控件,使用也非常简单,也能修改源码,牛逼我就不吹了,自己用用看 使用 1.引入 <script language="javascrip ...

  3. 53. Maximum Subarray最大求和子数组12 3(dp)

    [抄题]: Find the contiguous subarray within an array (containing at least one number) which has the la ...

  4. LeetCode包括main函数的答题框架(Java+Eclipse)

    http://zhangnai.xin/2016/09/20/LeetCode-Framework/ 目录结构: LeetCode ——项目名称,方便Eclipse内置Git对代码进行管理和多终端同步 ...

  5. Spring框架的事务管理相关的类和API

    1. PlatformTransactionManager接口 -- 平台事务管理器.(真正管理事务的类).该接口有具体的实现类,根据不同的持久层框架,需要选择不同的实现类! 2. Transacti ...

  6. 深入php内核,从底层c语言剖析php实现原理

    深入php内核,从底层c语言剖析php实现原理 非常好的电子书:http://www.cunmou.com/phpbook/preface.md   这是它的目录: PHP的生命周期 让我们从SAPI ...

  7. linux下常用文件操作命令

    1.find命令 按内容查找文件 find /home/vpopmail/domains/best-21ixi.jp/bounce/Maildir/new/ -name "*" | ...

  8. [BAT] 执行xcopy命令后出现Invalid num of parameters错误的解决办法

    如果是Windows下的命令行,对于有空格的文件路径要加引号,对于xcopy命令就是源路径和目标路径都要加引号 xcopy "C:\ppt" "D:\Program do ...

  9. 深入浅出 JMS(三) - ActiveMQ 消息传输

    深入浅出 JMS(三) - ActiveMQ 消息传输 一.消息协商器(Message Broker) broke:消息的交换器,就是对消息进行管理的容器.ActiveMQ 可以创建多个 Broker ...

  10. 连接数据库-stone

    # -*- coding:utf-8 -*- import pymysql class mysql: def __init__(self, host, port, dbuser, dbpwd, dbn ...