您的位置:程序门 -> java -> j2ee / ejb / jms



以jboss作服务器处理jms消息队列,可以发送却不能接受消息,大家帮我看看哈


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


以jboss作服务器处理jms消息队列,可以发送却不能接受消息,大家帮我看看哈
发表于:2007-07-25 17:00:32 楼主
这是测试用的发送代码:
package   mq.send;

import   java.util.properties;

import   javax.jms.destination;
import   javax.jms.jmsexception;
import   javax.jms.messageproducer;
import   javax.jms.queue;
import   javax.jms.queueconnection;
import   javax.jms.queueconnectionfactory;
import   javax.jms.queuesession;
import   javax.jms.textmessage;
import   javax.naming.initialcontext;
import   javax.naming.namingexception;

public   class   sendmq   {
public   static   void   main   (string[]   args){
queueconnection   conn   =   null;
queuesession   session   =   null;

try   {
properties   props   =   new   properties();
props.setproperty( "java.naming.factory.initial ", "org.jnp.interfaces.namingcontextfactory ");
props.setproperty( "java.naming.provider.url ", "localhost:1099 ");
props.setproperty( "java.naming.factory.url.pkgs ", "org.jboss.naming:org.jnp.interfaces ");

initialcontext   ctx   =   new   initialcontext(props);

queueconnectionfactory   factory   =   (queueconnectionfactory)ctx.lookup( "connectionfactory ");
conn   =   factory.createqueueconnection();
session   =   conn.createqueuesession(false,queuesession.auto_acknowledge);
destination   destination   =   (queue)ctx.lookup( "queue/a ");

messageproducer   producer   =   session.createproducer(destination);

textmessage   msg   =   session.createtextmessage( "这是我发送的第一个消息测试,测试 ");
producer.send(msg);

}   catch   (namingexception   e)   {
//   todo   auto-generated   catch   block
e.printstacktrace();
}   catch   (jmsexception   e)   {
//   todo   auto-generated   catch   block
e.printstacktrace();
}   finally{
try   {
session.close();
conn.close();
}   catch   (jmsexception   e)   {
//   todo   auto-generated   catch   block
e.printstacktrace();
}
}

}
}

运行后通过hermesjms可以查看到队列中的消息

这是接收端测试:
package   mq.receive;

import   java.util.properties;

import   javax.jms.jmsexception;
import   javax.jms.message;
import   javax.jms.queue;
import   javax.jms.queueconnection;
import   javax.jms.queueconnectionfactory;
import   javax.jms.queuereceiver;
import   javax.jms.queuesession;
import   javax.jms.textmessage;
import   javax.naming.initialcontext;
import   javax.naming.namingexception;

public   class   receivemq   {

public   static   void   main(string[]   args)   {
//   todo   auto-generated   method   stub
queueconnection   conn   =   null;
queuesession   session   =   null;

try   {
properties   props   =   new   properties();
props.setproperty( "java.naming.factory.initial ", "org.jnp.interfaces.namingcontextfactory ");
props.setproperty( "java.naming.provider.url ", "localhost:1099 ");
props.setproperty( "java.naming.factory.url.pkgs ", "org.jboss.naming:org.jnp.interfaces ");

initialcontext   ctx   =   new   initialcontext(props);

queueconnectionfactory   factory   =   (queueconnectionfactory)ctx.lookup( "connectionfactory ");
conn   =   factory.createqueueconnection();
session   =   conn.createqueuesession(false,queuesession.auto_acknowledge);
queue   destination   =   (queue)ctx.lookup( "queue/a ");
system.out.println( "测试接受消息session "+session);

queuereceiver   qrcv   =   session.createreceiver(destination);

// messageconsumer   consumer   =   session.createconsumer(destination);
system.out.println( "测试接受消息qrcv "+qrcv);

queue   x   =   qrcv.getqueue();
system.out.println( "测试接受消息queue "+x);

message   m   =   qrcv.receive(100);
system.out.println( "测试接受消息message "+m);
// message   m   =   consumer.receive(1000);
system.out.println( "测试接受消息 ");

conn.start();
while(m   !=   null){
if(m   instanceof   textmessage){
textmessage   tm   =   (textmessage)m;
system.out.println( "received   text:   ' "   +  
                                                        tm.gettext()   +   " ' ");
}
}

}   catch   (namingexception   e)   {
//   todo   auto-generated   catch   block
e.printstacktrace();
}   catch   (jmsexception   e)   {
//   todo   auto-generated   catch   block
e.printstacktrace();
}   finally{
try   {
session.close();
conn.close();
}   catch   (jmsexception   e)   {
//   todo   auto-generated   catch   block
e.printstacktrace();
}
}
}

}
打印m为空,大家帮我看看是怎么回事哈~我郁闷了,搞了一下午了
发表于:2007-07-25 17:07:411楼 得分:0
大家来帮我看看啊,我现在比较郁闷哈
发表于:2007-07-25 17:21:332楼 得分:0
不用了,自己搞定了
发表于:2007-10-22 09:20:553楼 得分:0
那就好。。

我现在有问题了  
加我qq55287996
帮我处理一下。
我正郁闷着


快速检索

最新资讯
热门点击