站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题jms可以部署在两台计算机上吗?

jms可以部署在两台计算机上吗?

摘要: jms可以部署在两台计算机上吗?


我刚开始接触jms,对大概的结构有了一个了解。
但是,有一点困惑,网上的教程都是把jms的发送端和接收端放在同一个机器上,那发送端和接收端可以处在不同的计算机上,并相互传递消息吗?
高手指点。谢谢。
在线等待


当然可以了,不然怎么叫作jms


那能不能给个示例呢?或者高手给指点一篇文章
不胜感激,这个问题已经困扰我好几天了
lifeng@tyut.edu.cn


顶一个 呵呵


我晕。老大不要光是顶。
来点干货啊。


JMS定义了五种不同的消息正文格式,以及调用的消息类型,允许你发送并接收以一些不同形式的数据,提供现有消息格式的一些级别的兼容性。


  · StreamMessage -- Java原始值的数据流


  · MapMessage--一套名称-值对


  · TextMessage--一个字符串对象


  · ObjectMessage--一个序列化的 Java对象


  · BytesMessage--一个未解释字节的数据流


  JMS应用程序接口提供用于创建每种类型消息和设置荷载的方法例如,为了在一个队列创建并发送一个TextMessage实例,你可以使用下列语句: TextMessage message = queueSession.createTextMessage(); message.setText(textMsg);   以异步方式接收消息,需要创建一个消息监听器然后注册一个或多个使用MessageConsumer的JMS MessageListener接口。会话(主题或队列)负责产生某些消息,这些消息被传送到使用onMessage方法的监听者那里。 import javax.jms.*; public class ExampleListener implements MessageListener { //把消息强制转化为TextMessage格式 public void onMessage(Message message) { TextMessage textMsg = null; // 打开并处理这段消息 } }   当我们创建QueueReceiver和TopicSubscriber时,我们传递消息选择器字符串: //P2P QueueReceiver QueueReceiver receiver; receiver = session.createReceiver(queue, selector); //Pub-Sub TopicSubscriber TopicSubscriber subscriber; subscriber = session.createSubscriber(topic, selector);   为了启动消息的交付,不论是Pub/Sub还是P2P,都需要调用start方法。 TopicConnection.start( ); //pub-sub QueueConnection.start( ); //P2P TopicConnection.start ( );// pub-sub QueueConnection.start ( );// P2P


  当一条消息被捕捉时,这条消息做为一条必须被强制转化为适当消息类型的普通Message对象到达。这是一个被用来提取或打开消息内容的getter方法。下列代码片段使用StreamMessage类型。 private void unPackMessage (Message message) { String eName; String position; double rate; StreamMessage message; Message = session.createStreamMessage( ); //注意下面的代码必须按照我给出的顺序书写 message.writeString(eName); message.writeString(position); message.writeDouble(rate); //实现处理消息的必要的程序逻辑 }


  停止消息的传递,无论是Pub/Sub还是P2P,都调用stop方法。 TopicConnection.start( ); //pub-sub QueueConnection.start( ); //P2P TopicConnection.start ( );// pub-sub QueueConnection.start ( );// P2P   其他的J2EE组件--servlet或EJB--可以当作消息生产者;然而,它们可能只能同步操作,这可能是因为它们的请求-应答的性质决定的。虽然XML目前还不是被支持的消息类型,发送一个XML文件和创建一条文本类型消息以及把XML文件添加到消息的有效负载都一样简单,都是以非专有的方式传送数据。值得注意的是,一些JMS供应厂商已经提供了可用的XML消息类型。但是使用非标准的消息类型可能会出现可移植性问题。 String reportData; //reportData内容为XML 文档 TextMessage message; message = session.createTextMessage(); message.setText (reportData);



看看activeMQ 吧,Google 上搜一把


activeMQ可以联系我,我刚研究了这个东西.


↑返回目录
前一篇: 请进来看一下,给个思路。
后一篇: 600分!JMS选型,有sun的message queue实践经验的请进!