activemq的消息接收,就是接收不到消息,请问是哪里的问题 5C

// 默认连接用户
private static final String USERNAME = "admin";

// 默认连接密码
private static final String PASSWORD = "admin";

// 默认连接URL
private static final String BROKERURL = "tcp://139.224.235.172:61613";

public static void main(String[] args) {
    // 连接工厂
    ConnectionFactory connectionFactory;

    // 连接
    Connection connection = null;

    // 会话
    Session session;

    // 消息目的地
    Destination destination;

    // 消息消费者
    MessageConsumer consumer;

    // 实例化工厂
    connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASSWORD,
            BROKERURL);

    try {
        // 创建连接
        connection = connectionFactory.createConnection();

        // 启动连接
        connection.start();

        // 创建会话
        session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        // 创建消息队列
        destination = session
                .createQueue("p171024103004.response.payonline");

        // 创建消费者
        consumer = session.createConsumer(destination);

        while (true) {
            // 参数:接收消息的超时时间,为0的话则不超时,receive返回下一个消息,但是超时了或者消费者被关闭,返回null
            Message message = (Message) consumer.receive(10*1000);
            if (message != null) {
                System.out.println("收到的消息:" + ((TextMessage) message).getText());
            } else {
                System.out.println("没有收到消息");
                break;
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
0

4个回答

需要 创建生产者  并且 要同一个消息队列  还需要生产者发送  

    final MessageProducer producer = session.createProducer(destination);

  TextMessage textMessage = session.createTextMessage("你快看看我出不出来");
    producer.send(textMessage);

            ![图片说明](https://img-ask.csdn.net/upload/201806/21/1529575077_161361.png)
0

有可能是你环境没有搭好

0

一般都是在客户端关闭seesion conection,代码例子

Java code

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

@Override
public void convertAndSend(Event message) {
// build ConnectionFactory And Queue is necessary
buildConnectionFactoryAndQueue();

Connection connect = null;
Session session = null;
MessageProducer producer = null;
try {
  connect = jmsConnectionFactory.createConnection();
  session = connect.createSession(false, Session.DUPS_OK_ACKNOWLEDGE);
  producer = session.createProducer(queue);
  // create a JMS message and send it
  ObjectMessage objMsg = session.createObjectMessage(message);
  // set message selector
  String messageSelector = message.getMessageSelector();
  objMsg.setStringProperty("messageReceiver", messageSelector);

  producer.send(objMsg);
} catch (JMSException e) {
  String errorMessage = "JMSException while queueing HTTP JMS Message";
  throw new EventRuntimeException(errorMessage, e);
} finally {
  SafeCloseUtil.close(producer); // 这里关闭 producer
  SafeCloseUtil.close(session);  // 这里关闭 producer
  SafeCloseUtil.close(connect);
}

}

服务端只需要实现MessageListener的onMessage,客户端的 session服务端根本不知道,也无法关闭。

Java code

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

@Override
public void onMessage(Message message) {
printLogMessage("start public function onMessage()..");
try {
if (message instanceof ObjectMessage) {
ObjectMessage objMsg = (ObjectMessage) message;
Event event = (Event) objMsg.getObject();
// if Re deliver message warn the message
if (message.getJMSRedelivered()) {
log.warn("...", event.getClass().getSimpleName());
}
// out Put Event Log
outPutEventLog(event);
// dispatch Event
dispatchEvent(event);
} else {
log.error("This MDB message was not instance of ObjectMessage; ignoring.");
}

  printLogMessage("end public function onMessage()..");
} catch (JMSException e) {
  String errorMessage = "JMS Exception while Listener message.errorMessage:"
      + e.getMessage();
  log.error(errorMessage);
  throw new EventRuntimeException(errorMessage, e);
}

}

0

生产者 是否还在运行?又是否 持久化? 确定后去百度 ActiveMQ 使用?

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ActiveMQ接收消息
之前写了一个ActiveMQ发送消息的例子。现在记录一下java接收ActiveMQ消息的代码。   package com.syxp.dns.receive; import javax.jms.Connection; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms....
Activemq消息的发送与接收
这两天做项目用到即时消息的发送与接受,所以突击自学activemq。如果能看到这,说明你已经搜了好多资料了,这里我就不多说了。经过我的学习与网上的各种资料整理,封装了一个简单轻便的工具类方便大家使用。 第一步:需要导入jar包 org.apache.activemq activemq-core 5.7.0 org.apache.activemq active
利用ActiveMQ使用mqttv3发消息Android接收消息
在Linux服务器端安装好并启动ActiveMQ后使用一、发送消息public interface PushCallBack { int saveOnDone(boolean isOk); } import org.eclipse.paho.client.mqttv3.*; import org.eclipse.paho.client.mqttv3.persist.MqttDefaultFi
ActiveMQ消息接收模式
消息接收模式 消息都是从Broker传输到Client,默认情况下Broker会主动将消息PUSH至Client,当然也可以通过配置改为Client主动从Broker PULL消息,参考: http://activemq.apache.org/slow-consumer-handling.html PUSH模式 默认情况下,Broker会主动将消息PUSH至Client,这样做的目的是为了让消...
Spring整合ActiveMQ接收消息
操作步骤 第一步:把Activemq相关的jar包,添加到工程中 第二步:创建一个MessageListener的实现类,负责监听 第三步:配置MessageListener监听器 第四步:初始化Spring容器,进行监听 添加jar包 <!-- activemq的jar包 --> <dependency> <groupId>org.apac...
activemq发送消息接收不到问题排查
昨天,在公司开发环境上尝试数据同步,涉及到两个服务,服务A发布主题,服务B监听消息,然后同步A表中的数据到B表; 由服务A通过activemq发布消息到一个topic:VirtualTopic.topic,发现服务A日志上显示发送消息成功,VirtualTopic.topic对应的Messages Enqueued数目增加了2,表明topic上也产生了相应数目消息队列;但是服务B日志上迟迟没有打...
activemq broker topic消息收发处理过程
首先看一下activemq的网络模型(获取自网络)。 可以看到,TcpTransportServer是一个监听网络的类,如果有socket连接,便会放入阻塞队列,然后创建一个TransportConnection类,该类接收socket的消息,进行逻辑处理; 先看看TransportConnector在干啥 第一步:设置server处理类 第二步:接收到连接socket加入线程池 ...
Spring+ActiveMQ消息队列+前台接收消息
整合Spring + ActiveMQ 的朋友可以下载看一下 简单易懂
Active MQ发送/接收消息的顺序问题
场景: A系统以一个生产者向Queue里连续发送了两条消息(消息1、消息2) B系统以一个消费者监听Queue,结果是先收到的消息2,再收到的消息1   目前这个问题正在调查…… 疑问1:对某个Queue只配置一个消费者,是否意味着只有一个线程在处理消息呢?...
springboot中简单的接收和发送activeMQ消息
ActiveMQ——activemq的详细说明,queue、topic的区别(精选):https://www.cnblogs.com/lemon-flm/p/7676047.html 配置文件: spring: activemq: user: admin password: admin broker-url: tcp://xx.xx.xxx.xx:61616 ...
ActiveMQ 部署及发送接收消息
本文转自:http://blog.csdn.net/leadergg/article/details/8771218 目录(?)[+] ActiveMQ 部署及发送接收消息 一、           下载 下载地址:http://activemq.apache.org/ 我这里使用的版本为当前最新5.8.0。 下载版本有Windows和Linux两
java activeMQ消息的发送与接收
java activeMQ消息的发送与接收          activemq是我们经常用到的消息队列之一,比如说速度快,对spring的很好的支持,支持多种协议等等,今天我们就来看一下activeMQ消息的发送与接收的源代码。       我这里使用了两个配置文件,其实在一个配置文件里面就可以完成发送与接收功能,但是为了方便观察日志,我就使用了两个配置文件。在使用代码之前需要搭建好act
activemq-cpp发送接收消息,消息过滤器
本代码关于activemq-cpp的核心代码参考的chenxun2009的博客园,其他部分包括:从配置文件中读取消息通道,过滤条件等信息。
ActiveMQ 使用Queue或者Topic发送/接受消息
本篇主要讲解在未使用其他框架(Spring)整合情况下,独立基于ActiveMQ,使用JMS规范进行消息通信。            一.JMS回顾        因为ActiveMQ是一个JMS Provider的实现,因此在开始实作前,有必要复习下JMS的基础知识     Java Message Service (JMS)是sun提出来的为J2EE提供企业消息处理的一套规范,JMS目
ActiveMQ:点对点队列消费者接收不到消息
一.环境说明 Windows 1709 阿里云ECS CentOS 7.4 ActiveMQ 5.15.2 JDK 1.8 IDEA 2017.3 Maven 3.5.0 二.问题说明远程消息服务器使用的是阿里云ECS,在windows上编写测试类测试消息队列的点对点的通信,却发现,无法消费生产者生产的消息,即接收不到消息.三.代码testProducer @Test public v
activemq中多个consumer引起接收不到信息
使用activemq时,若一个mq有两个comsumer时,会有接收不到信息的情况
activemq消息队列-使用监听器来接收消息(常用)
  //点对点-使用监听器接收消息public class ConsumerListener {       // tcp 地址 服务器器端地址    //public static final String BROKER_URL =ActiveMQConnection.DEFAULT_BROKER_URL;  // 其值为 "tcp://localhost:61616"; public st...
ActiveMQ教程(2)— 在ActiveMQ中传递Stomp消息简单代码示例
下面我们使用ActiveMQ提供的JAVA 客户端(实际上就是ActiveMQ对JMS规范的实现),向ActiveMQ中的Queue(示例代码中将这个Queue命名为’test’)发送一条Stomp协议消息,然后再使用JAVA语言的客户端,从ActiveMQ上接受这条消息: 使用ActiveMQ的API发送Stomp协议消息: package mq.test.stomp; impor...
ActiveMQ暂停接收消息与恢复接收消息
目录   ●问题起因 ●解决方案 ●测试结果 ●问题起因 使用ActiveMQ的过程中,有这么一个很常见的需求:如果我的消息消费者压力过大,接收消息来不及处理,我想暂停接收消息,先处理完已接收到的消息后,再恢复继续接收新的消息。 比较诡异的是,这样一个看似简单的功能,百度上居然没有一个适用的方案,大家不信的话可以搜索试试: 第一篇文章看似OK,但是点进去你会发现他的实现方式依旧...
ActiveMQ Topic消息失败重发
       消息失败重发指的是当消息的接收方没有成功的消费消息,我们需要重发消息,让消息的接收方成功消费这个消息,保证事务的完整性和消息的一致性。 一、JMS消息确认机制     在session接口中定义的几个常量:    AUTO_ACKNOWLEDGE =  1    自动确认   CLIENT_ACKNOWEDGE =  2    客户端手动确认   DUPS_OK_ACKNO...
spring JMS、activemq中消费者收不到生产者发送的消息的原因解析
我们使用jms一般是使用spring-jms和activemq相结合,通过spring的JmsTemplate发送消息到指定的Destination。       首先定义一个activemq的连接池:   Xml代码   bean id="connectionFactory" class="org.apache.activemq.pool.PooledC
activemq 通过ajax发送接收消息
本文以最新版activemq5.8为例,参考http://activemq.apache.org/ajax.html官网ajax使用例子,作了网页版的聊天室例子。 ActiveMQ支持Ajax,这意味着你可以利用ActiveMQ的“发布/订阅”的特性,来创建高度实时的web应用。 Ajax允许浏览器网页客户端通过互联网收发信息。ActiveMQ对Ajax的支持建立在与REST的Ac
activeMQ 服务器重启 client接受不到消息
采用activeMQ5.0当服务端重启的之后,客户端一定要重启才能收到消息,如果要是有多个客户端,那每次重启activeMQ5.0服务端都要重启客户端,是不行的,不知道大家有什么好办法。 在网上看了下有人说是spring的org.springframework.jms.connection.SingleConnectionFactory的连接池的问题,可是我换成了activeMQ的连接池也...
activemq消息接收流程
activemq消息接收流程
利用Spring与ActiveMQ整合发送、接收消息实例(Queue与Topic模式)
利用Spring与ActiveMQ整合发送、接收消息实例,同时使用Queue与Topic两种模式。 1.运行环境:Win10+Eclipse Java EE IDEOxygen Release (4.7.0)+jdk1.8 2.web-inf/lib 中依赖jar包:activemq-all-5.15.0.jar spring-aop-4.2.2.RELEASE.jar spring...
ActiveMQ支持多个topic订阅消息接收设置
描述:最近做一个预警的功能,使用到ActiveMQ消息订阅功能,但是问题来了,页面上有四个Topic订阅消息就接收不到消息,接收一个topic消息就没问题。排查问题后,程序是没问题的,问题应该出现在ActiveMQ配置文件设置那块。直接找到activemq.xml,如图: 源代码: <broker xmlns="http://activemq.apache.org/schema/co...
ActiveMQ(四):Topic方式使用MessageListener监听的方式接收消息
发布/订阅模式
activemq消息数据显示??乱码
今天测试一个数据从IBM队列转发到activemq队列, 在通过activemq管理页面打开发现,中文居然是???。 怀疑有三点: 1、是从IBM队列取出来因为编码格式不对,而导致的。 我自己单独发送了中文,到了队列里,发现依然是乱码,那看来不是IBM队列的锅 2、本身代码的格式? 把自己项目的所有编码都改成了UTF-8 ,重新测试,仍旧是乱码。也不是项目的锅 询问同...
消息队列 折腾ActiveMQ时遇到的问题和解决方法 消息丢失怎么办
折腾ActiveMQ时遇到的问题和解决方法:   1.先讲严重的:服务挂掉。 这得从ActiveMQ的储存机制说起。在通常的情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的,它们的最大限制在配置文件的<systemUsage>节点中配置。但是,在非持久化消息堆积到一定程度,内存告急的时候,ActiveMQ会将内存中的非持久化消息写入临时文件中,以腾出内存。虽然都保...
activemq消息的发送与接受封装的工具类
activemq消息的发送与接受封装的工具类,只要你导入jar包
ActiveMQ——2.消息的接收方式以及选择器
消息的接收方式 概述 消息有两种接收方式:同步接收和异步接收。 同步接收:主线程阻塞式等待下一个消息的到来,可以设置timeout,超时则返回null。 异步接收:主线程设置MessageListener,然后继续做自己的事,子线程负责监听。 同步接收又称为阻塞式接收;异步接收又称为事件驱动的接收。 API 同步接收,是在获取Messa
ActiveMQ发送与接收消息
package com.yl.common.activemq; import javax.jms.Connection; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.Message; import javax.jms.MessageConsumer; import j...
ActiveMQ消息多线程并发处理
activeMQ发送方和接收方有多个线程发布消息和多个线程接收消息的情况
ActiveMQ的queue以及topic两种消息处理机制
JMS:Java Message Server JMS消息服务器有很多:ActiveMQ、Jboss MQ、Open MQ、RabbitMQ、ZeroMQ等等    queue与topic的技术特点对比     Topic 概要 Publish Subscribe messaging 发布订阅消息 Point-to-Point 点对...
ActiveMq点对点模式发送、接收消息
消息发送流程: 1) 客户机发送消息到JMS消息中间件 2) 服务端负责监听JMS消息目的地。 3) 发现JMS里面有消息产生,服务就可以接受消息。 点对点消息发送服务: 1) 消息只能被一个服务接受 2) 多个服务同时监听消息服务器,遵循先来后到原则。 3) 消息一旦被接受,消息自动消失。 4) 如果消息一直没有被接受,消息会等待被接受,直到被接受为止。
spring JMS、activemq中消费者收不到生产者发送的消息的原因解析
我们使用jms一般是使用spring-jms和activemq相结合,通过spring的JmsTemplate发送消息到指定的Destination。       首先定义一个activemq的连接池:   Xml代码   <bean id="connectionFactory" class="org.apache.activemq.pool.PooledConn...
消息的接收和处理
上面代码,session接到数据后,找handle,下面就看看session中的handle是怎么赋值的其它的session中,handle的赋值也是按照这个套路来的#include "stdafx.h" #include "GSKernel.h" #include <iostream> #include <fstream> #include "GSSSInfo.h"using namespace
使用WebSocket协议接收ActiveMQ消息
ActiveMQ允许客户端使用多种协议接收消息,其中WebSocket协议的URL使用ws://开头,默认端口号是61614
JMS之——基于ActiveMQ实现简单的消息收发案例
在上一篇博文《JMS之——ActiveMQ的安装和启动》给大家讲解了如何安装和启动ActiveMQ以及简单的介绍了一下ActiveMQ应用场景,那么这篇文章就给大家介绍如何基于ActiveMQ实现简单的消息收发功能。要注意的是,开发时候,要将apache-activemq-5.14.4-bin.tar.gz解压缩后里面的activemq-all-5.14.4.jar包加入到classpath下面,
MQ JMS发送消息并接收客户端回复(转载)
import java.util.Scanner; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.QueueRe...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 大数据就是机器学习 java 学习就是学习