利用JMS建立消息传递系统 - 编程入门网
WebLogic Server、Prism Technologies OpenFusion等最有名气,也存在一些免费的实现。
JMS同时支持消息交换的两种“基本的”模型。但是,其说明(specification)并没有要求厂商同时实现两种模型,尽管大多数JMS产品实现了点对点和发表-预订模型。 利用JMS建立消息传递系统(2)时间:2010-05-21JMS应用程序 JMS应用程序的主要部分是: · 产生连接的部分和目的地 · 连接 · 对话 · 产生消息的部分 · 使用消息的部分 · 消息 产生连接的部分(ConnectionFactory)是负责建立JMS连接的对象。每个ConnectionFactory都是QueueConnectionFactory或TopicConnectionFactory的一个副本(copy)。MOM管理器建立特定的对象,并把它与JNDI树关联起来,这样JMS客户端就能够使用标准的JNDI查找表得到ConnectionFactory的入口。在点对点的模型中,它使用了javax.jms.QueueConnectionFactory;在发表-预订模型中,它使用的是javax.jms.TopicConnectionFactory。 目的地(Destination)——它是队列或主题,这依赖于我们使用了下面哪种模型:javax.jms.Queue或javax.jms.Topic。 连接(Connection)——它可能是客户端和服务应用之间的开放的TCP/IP。它可以被用于建立一个或少量的对话。在你的应用程序能够接收消息前,你必须调用start()方法。为了暂停发送消息,你需要调用stop()。 对话(Session)——在JMS连接的帮助下建立的对象,被客户端用作发送和接收消息。 产生消息的部分(MessageProducer)——对话建立的对象,被用于在目的地中发送消息。 使用消息的部分(MessageConsumer)——对话建立的对象,用于接收消息。为了同步接收消息,需要使用receive()方法。对于异步的情形,使用MessageListener和唯一的方法——onMessage()。在该方法中,在定义的消息到达后应该执行一定的操作。 消息(Message)——消息本身。JMS消息由三个部分组成: · 消息头 · 属性(不是必要的) · 消息体(不是必要的) 本文没有解释更多的细节信息,你可以在官方文档中找到具体的细节。 什么时候使用EJB 2.0 请注意下述各项内容: 在新的EJB 2.0规范中,与JMS的集成是通过建立新的EJB类型——消息驱动Bean(MDB)来实现的。MDB的特性是客户端不会使用远程接口(remote interface)与它通讯。其交互操作的唯一途径是通过消息发送。MDB仅仅是消息监听程序,是一个实现了javax.ejb.MessageDrivenBean和javax.jms.MessageListener接口的类,没有任何其它的功能。其中的第一个接口只有两个方法:setMessageDrivenContext() 和ejbRemove()。第二个接口只有一个方法:onMessage()。这个规范还需要一个不带参数的ejbCreate()建立方法。客户端不会直接与MDB通讯;它不会建立MDB。容器(container)自身决定什么时候和需要多少个MDB来处理来自特定目的地的消息。MDB的主要缺陷是它只能从一个目的地接收到消息。 利用JMS建立消息传递系统(3)时间:2010-05-21代码示例 我们假设你已经安装了J2SE(可以在http://java.sun.com/j2se/找到它),并且已经安装并运行了JBoss应用程序服务器(可以在http://www.jboss.org/找到它)。 为了编译下面的示例,你需要输入: javac -classpath .;C:\jboss-3.2.3\client\jbossall-client.jar SimpleSender.java 为了运行它,你需要输入: java -classpath .;C:\jboss-3.2.3\client\jbossall-client.jar SimpleSender (在输入时,请用你自己的JBoss目录代替C:\jboss-3.2.3。同时还要记住,在你能够运行这些示例前,JBoss服务器必须处于运 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |