jms简单例子,servlet做producer,message driven bean做consumer

本文提供了一个简单的JMS应用示例,通过Servlet作为消息生产者,使用Message Driven Bean作为消费者。在Glassfish服务器上配置JMS资源,包括QueueConnectionFactory和Queue,然后在Servlet中创建并发送消息,MDB监听并处理接收到的消息。

这个例子是为了熟悉jms的开发流程。

效果是一个servlet向一个message driven bean(mdb)发送消息。服务器是glassfish3.1。

 

首先建一些jms的资源,包括connectionfactory和一个queue,这个例子是一个PTP的jms链接。

 

建连接工厂

启动glassfish-》资源-》jms资源-》链接工厂-》新建

池名称(即jndi名称)起名为:jms/QueueConnectionFactory

资源类型选:javax.jms.QueueConnectionFactory,因为我们需要一个队列链接

保存

再建一个目的资源

jms资源-》目的地资源-》新建

jndi名称:jms/SimpleQueue

物理目的地址:SimpleQueue(不懂派什么用,随便取个名字)

资源类型:javax.jms.Queue

资源建好了,开始建立消息通信的两端,producer和consumer。

建一个servlet做producer

eclipse新建一个动态页面项目,新建一个servlet名为Producer,内容如下:

原本这里的两个资源可以通过@Resource来注入的,不过遇到个问题就是@Resource在jdk和glassfish中有两个不同的版本,一个(jee6)有成员lookup一个(j2se)没有,所以要用注入会编译出错,所以只能用老派办法,直接从jndi上下文找资源来初始化成员变量。

servlet功能很简单,向SimpleQueue发送一个字符串。

把项目export为war,然后用glassfish发布。

再建一个mdb做consumer:

eclipse新建EJB项目

新建一个类(eclipse的新建mdb有点不对)

 

 

 

jms/SimpleQueue

jms/SimpleQueue

jms/QueueConnectionFactory
jms/SimpleQueue

代码如下:

主要就是实现了MessageListener的方法,并且这个类有MessageDriven的annotation,然后映射到SimpleQueue上。这样就能在这个jms消息队列有消息时,在onMessage方法中收到消息。

打包项目为一个ejb-jar,然后用glassfish发布。

 

运行之前的servlet,只要在浏览器地址栏里天上servlet对应的地址,我这里是http://localhost:8080/jmsServlet/Producer

glassfish的控制台就会输出servlet发送消息的println和mdb收到消息的println了

jms/SimpleQueue

jms/SimpleQueue

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值