| 发表于: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为空,大家帮我看看是怎么回事哈~我郁闷了,搞了一下午了 |
|
|
|
|