jms接收消息问题

ch_tj2k 2007-06-08 12:29:04
使用queue发送objectMessage类型消息,第一次能正常发送和接收,第二次可以正常发送出去,但接收方收不到消息,因为第一次可以正常收发,所以发送和接收的代码应该没问题,只是不知道为什么第二次就是收不到这个消息?
...全文
351 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
小洋叔 2008-11-04
  • 打赏
  • 举报
回复
第二种方法是用 接受者直接调用receive()方法吧。
幻影浪子 2008-11-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yuzm1984 的回复:]
Queue是JMS的点对点发送方式,意思是只有一个消息的接收方。
消息发送者是把消息发送到JMS服务端的消息队列里面,等于是放到一个消息容器里面,接受者从这个容器里面拿消息。
消息消费者有2中方式拿到JMS队列里面的消息。
第一种是启动监听器接受消息:
public void onMessage(Message message) {
try {
String str = ((TextMessage)message).getText();
System.out.println("=========接受的字符串 : " + str); …
[/Quote]

请问,你的第二种方法如何实现?谢谢,希望最终不是通过OnMessage()实现
gougou8180 2007-10-24
  • 打赏
  • 举报
回复
程序写的有问题吧。。。
你消息是发到queue里去的,又怎么会被自己接受到呢?自己也在QUEUE上监听?如果多个对象在QUEUE上监听,那接受的确是轮流来接受的
可以设置接受条件,只有满足条件的消息才被接受
yuzm1984 2007-10-24
  • 打赏
  • 举报
回复
Queue是JMS的点对点发送方式,意思是只有一个消息的接收方。
消息发送者是把消息发送到JMS服务端的消息队列里面,等于是放到一个消息容器里面,接受者从这个容器里面拿消息。
消息消费者有2中方式拿到JMS队列里面的消息。
第一种是启动监听器接受消息:
public void onMessage(Message message) {
try {
String str = ((TextMessage)message).getText();
System.out.println("=========接受的字符串 : " + str);
} catch (JMSException e) {
e.printStackTrace();
}
}
第二种是启动线程接受消息:
QueueReceiver mc = quSession.createReceiver(queue);
while(true){
Thread.sleep(3000);
}

你为什么会自己收到消息,你是启动了好几个接受方吧。。
llddy 2007-10-22
  • 打赏
  • 举报
回复
记号 等 牛B人帮忙指点 我也遇见了。。
lfl831223 2007-06-09
  • 打赏
  • 举报
回复
我也有同样的问题
zl051732 2007-06-09
  • 打赏
  • 举报
回复
帮顶
iwillrockyou 2007-06-08
  • 打赏
  • 举报
回复
帮顶。。。
ch_tj2k 2007-06-08
  • 打赏
  • 举报
回复
第二次收不到,第三次会被自己收到,第4次对方正常收到,5,6,7依次循环,很是奇怪的问题

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧