ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:1.22MB ,
资源ID:5817936      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5817936.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JavaEE之消息驱动Bean.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JavaEE之消息驱动Bean.docx

1、JavaEE之消息驱动Bean实验6. 消息驱动Bean实验内容在本实验中将学习编写消息驱动Bean,编写消息发送程序,配置消息服务器,测试消息的发送和接收。实验目的 掌握消息驱动Bean的编写。 掌握消息发送程序的编写。 掌握消息服务器的配置。 掌握消息发送和接收的测试。实验介绍本实验首先创建EJB工程,其次创建和部署消息驱动Bean,接着创建消息发送程序,然后配置消息服务器,包括消息目的和消息工厂,最后测试消息的发送和接收。环境要求服务器:JBoss6.0集成开发环境:MyEclipse 8.5/MyEclipse 8.6实验指导步骤1:创建EJB工程myMDB1. 在主菜单中选择【New

2、】【EJB Project】,出现New EJB Project对话框。2. 在New EJB Project对话框中,Project Name文本框中输入myMDB,J2EE Specification Level项选中Java EE5.0-EJB3,具体如下图所示,点击【Finish】按钮。图6-1步骤2:创建消息驱动Bean1. 在主菜单中选择【New】【EJB3 Message Driven Bean】,出现New EJB3 Message Driven Bean对话框。2. 在New EJB3 Message Driven Bean对话框中,Package文本框中输入ejbBeans

3、, Name文本框中输入MyMDB,Destination Type项选中Queue,具体如下图所示,点击【Finish】按钮。图6-23. MyMDB类自动形成代码如下:package ejbBeans;import javax.ejb.ActivationConfigProperty;import javax.ejb.MessageDriven;import javax.jms.Message;import javax.jms.MessageListener;MessageDriven(mappedName = jms/MyMDB, activationConfig = Activatio

4、nConfigProperty(propertyName=destinationType, propertyValue=javax.jms.Queue), ActivationConfigProperty(propertyName=destination, propertyValue=jms/MyMDB), ActivationConfigProperty(propertyName=acknowledgeMode, propertyValue=Auto-acknowledge)public class MyMDB implements MessageListener public void o

5、nMessage(Message arg0) / TODO Auto-generated method stub 注意:以上代码中声明的这个消息驱动Bean使用的消息目的是“jms/MyMDB”。ationConfig声明消息的确认模式和消息目的类型(队列)。4.在onMessage方法中添加对消息处理的代码。这里假设接收的消息是TextMessage类型、Object类型、Map类型、Stream类型,接收到消息之后把消息输出到控制台。修改onMessage方法,类MyMDB完整代码如下:package cn.edu.jms.impl;import java.io.ByteArrayOutp

6、utStream;import javax.ejb.ActivationConfigProperty;import javax.ejb.MessageDriven;import javax.jms.BytesMessage;import javax.jms.MapMessage;import javax.jms.Message;import javax.jms.MessageListener;import javax.jms.ObjectMessage;import javax.jms.StreamMessage;import javax.jms.TextMessage;import cn.e

7、du.jms.bean.Man;MessageDriven(activationConfig = ActivationConfigProperty(propertyName=destinationType, propertyValue=javax.jms.Queue), ActivationConfigProperty(propertyName=destination, propertyValue=jms/MyMDB1), ActivationConfigProperty(propertyName=acknowledgeMode, propertyValue=Auto-acknowledge)

8、public class MyMDB implements MessageListener public void onMessage(Message msg) try if (msg instanceof TextMessage) TextMessage tmsg = (TextMessage) msg; String content = tmsg.getText(); System.out.println(content); else if(msg instanceof ObjectMessage) ObjectMessage omsg = (ObjectMessage) msg; Man

9、 man = (Man) omsg.getObject(); String content = man.getName()+ 家住+ man.getAddress(); System.out.println(content); else if(msg instanceof MapMessage) MapMessage map = (MapMessage) msg; String content = map.getString(no1); System.out.println(content); else if(msg instanceof BytesMessage) BytesMessage

10、bmsg = (BytesMessage) msg; ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); byte buffer = new byte256; int length = 0; while (length = bmsg.readBytes(buffer) != -1) byteStream.write(buffer, 0, length); String content = new String(byteStream.toByteArray(); byteStream.close(); System.ou

11、t.println(content); else if(msg instanceof StreamMessage) StreamMessage smsg = (StreamMessage) msg; String content = smsg.readString(); System.out.println(content); catch (Exception e) e.printStackTrace(); 在项目上建立一个bean,名称为Man,类Man在包cn.edu.jms.bean下,内容如下:package cn.edu.jms.bean;import java.io.Seriali

12、zable;public class Man implements Serializable private static final long serialVersionUID = -1789733418716736359L; private String name;/姓名 private String address;/地址 public Man(String name, String address) this.name = name; this.address = address; public String getName() return name; public void set

13、Name(String name) this.name = name; public String getAddress() return address; public void setAddress(String address) this.address = address; 5部署消息驱动Beana.如果JBoss没有启动,则启动JBoss。b. 在工具栏点击部署按钮,出现Project Deployments对话框。图6-3c.在Project Deployments对话框的【Project】下拉列表框中选择“myMDB”。点击【Add】按钮,出现New Deployment对话框。

14、d.在New Deployment对话框中,【Server】下拉列表框选择WebLogic 10.x,Deploy type项选中Exploded Archive(development),点击【Finish】,回到Project Deployments对话框。点击【OK】即可。图6-4e.在Project Depolyments对话框中出现Successfully deployed,表示部署成功。点击【Browse】可以看到myMDB部署的路径为“%JBOSS_HOME%serverdefaultdeploymyMDB”。图6-5f.也可以在Servers下看到部署的消息驱动Bean,如下图

15、所示。图6-6步骤3:创建消息发送程序1. 创建Java工程a.在主菜单中选中【New】【Java Project】,出现New Java Project对话框。b.在对话框中的Project name文本框中输入:myMDBClient。JRE项选择Use default JRE(Currently jdk1.5.0_05),点击【Next】。注意:JRE是系统的JDK,如果前面的实验中没有配置JRE,可以在图中点击Configure default链接,进行默认JRE的配置。图6-7c.观察出现的Java Settings对话框,特别是【Libraries】选项页。点击【Finish】。图

16、6-82. 创建Java类a. 右键点击工程myMDBClient,选择【New】【Class】,出现New Java Class对话框。图6-9b. 在对话框的Package文本框中输入“cn.edu.jms.test”,Name文本框中输入“QueueSender”,并且选中“public static void main(String argv)”,然后点击【Finish】。c. 如果出现如下对话框,询问是否进行视图转换,可以选择点击【No】。图6-103. 编写消息发送程序QueueSender的代码如下:package cn.edu.jms.test;import java.util

17、.Properties;import javax.jms.BytesMessage;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;import javax.jms.MapMessage;import javax.jms.MessageProducer;import javax.jms.Queue;import javax.jms.Session;import javax.jms.StreamMess

18、age;import javax.jms.TextMessage;import javax.naming.Context;import javax.naming.InitialContext;import cn.edu.jms.bean.Man;public class QueueSender public static void main(String args) Connection conn = null; Session session = null; try Properties props = new Properties(); props.setProperty(Context.

19、INITIAL_CONTEXT_FACTORY, org.jnp.interfaces.NamingContextFactory); props.setProperty(Context.PROVIDER_URL, localhost:1099); props.setProperty(Context.URL_PKG_PREFIXES, org.jboss.naming:org.jnp.interfaces); InitialContext ctx = new InitialContext(props); ConnectionFactory factory = (ConnectionFactory

20、) ctx.lookup(ConnectionFactory); conn = factory.createConnection(); session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination destination = (Queue) ctx.lookup(jms/MyMDB1); MessageProducer producer = session.createProducer(destination); /发送文本 TextMessage msg = session.createTextMessa

21、ge(大家好,这是我的一个消息驱动Bean); producer.send(msg); /发送Ojbect(对象必须实现序列化,否则等着出错吧) producer.send(session.createObjectMessage(new Man(孙悟空, 花果山水帘洞); /发送MapMessage MapMessage mapmsg = session.createMapMessage(); mapmsg.setObject(no1, 花果山景区。); producer.send(mapmsg); /发送BytesMessage BytesMessage bmsg = session.cre

22、ateBytesMessage(); bmsg.writeBytes(我是一个兵,来自老百姓.getBytes(); producer.send(bmsg); /发送StreamMessage StreamMessage smsg = session.createStreamMessage(); smsg.writeString(孙悟空大在取经路上); producer.send(smsg); catch (Exception e) e.printStackTrace(); finally try session.close (); conn.close(); catch (JMSExcept

23、ion e) e.printStackTrace(); 注意:由于工程中没有需要的javax.jms包,因此以上代码保存编译时将出现错误。实际上,上面的程序中不仅需要javax.jms,而且需要%JBOSS_HOME%client下所有jar文件,下面将导入需要的jar文件。4. 向工程中添加需要的类库。a. 右键点击工程,选择【Properties】,在出现的对话框的左侧点击【Java Build Path】,右侧选中【Libraries】页,点击【Add External Jars】出现New Java Project对话框。图6-22b. 选择%JBOSS_HOME%client下的所有

24、jar,最后点击【OK】。图6-23图6-24c. 类库添加后,在左边的视图中出现如下内容,注意观察添加的Jar包。步骤4:配置消息目的和消息工程1. 进入控制台进行配置。a. 如果WebLogic没有启动,启动JBoss服务,通过http:/localhost:8080打开JBoss控制台,如图6-25所示,单击Administrat Console,弹出如图6-26所示窗口。图6-25b.在图6-26所示窗口中输入Username及Password,均为admin。图6-26c. 在图6-27所示窗口中,单击JMS Queue,弹出如图6-28所示窗口。图6-27d. 在图6-28所示窗口

25、中,单击Add new resource,弹出如图6-29所示窗口。图6-28e. 在图6-29所示窗口中,单击Add new resource,弹出如图6-29所示窗口。图6-29f. 在图6-30所示窗口中,输入相关参数,具体操作如图6-30所示。图6-30图6-31g. 在图6-31所示窗口中添加角色,具体操作如图6-32所示,单击OK按钮,返回到图6-31所示窗口,如图6-33所示。图6-32图6-33h. 出现如下配置成功的界面,如图6-34所示。图6-34步骤5:测试消息的发送和接收1. 运行消息发送程序a. 右键点击工程myMDBClient中的QueueSender,选择【Run as】-【Java Application】2观察控制台的输出图6-35注意观察:消息驱动Bean接收消息的顺序是否总是与发送消息的顺序一致?实验总结这个实验中,在Eclipse+MyEclipse8.5集成开发环境中创建了一个EJB工程,里面有一个消息驱动Bean:MyMDB;创建了一个Java工程,里面有一个消息发送者Java类: QueueSender;在JBoss服务器中配置了消息服务器,包括消息目的和消息工厂。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1