eclipse + JBoss 5 + EJB3开发指南(14):消息驱动Bean - 编程入门网
if(message instanceof ObjectMessage)
{
ObjectMessage objmsg = (ObjectMessage) message;
DateBean dateBean = (DateBean) objmsg.getObject();
em.persist(dateBean);
System.out.println("成功持久化DateBean对象!");
}
else
{
System.out.println("消息类型错误!");
}
}
catch (Exception e)
{
throw new EJBException(e);
}
}
}
eclipse + JBoss 5 + EJB3开发指南(14):消息驱动Bean(3)时间:2011-09-18 blogjava 哈佛校训消息驱动Bean需要使用@MessageDriven进行注释。要注意的是destination属性的值是queue/MDBQueue 。JBoss不会自已建立一个Queue对象,因此,需要手工来配置Queue对象。读者可以<JBoss5.x安装目 录>\server\default\deploy目录中建立一个xxx-service.xml文件,其中xxx可以任意取值,但必须跟 “-service”后缀,例如,abc-service.xml。该文件可以放在deploy或其子目录(可以是多层子目录) 中。该文件的内容如下: <?xml version="1.0" encoding="UTF-8"?> <server> <mbean code="org.jboss.mq.server.jmx.Queue" name="jboss.mq.destination:service=Queue,name=MDBQueue"> <depends optional-attribute- name="DestinationManager">jboss.mq:service=DestinationManager</depends> </mbean> </server> 要注意的是,<mbean>元素的name属性值中的name必须是MDBQueue,要与queue/MDBQueue中的/ 后面的部分一致。如果不进行上面的配置,在启动JBOSS时就会抛出如下的异常: javax.naming.NameNotFoundException: MDBQueue not bound 也可以将<mbean>元素放在deploy目录中的其他以-service.xml结尾的文件中。 如果不设置destination属性的值,在启动JBoss是会抛出如下的异常: org.jboss.deployers.spi.DeploymentException: Required config property RequiredConfigPropertyMetaData@174098f[name=destination descriptions= [DescriptionMetaData@4ca30b[language=zh]]] for messagingType ''javax.jms.MessageListener'' not found in activation config [ActivationConfigProperty(destinationType=javax.jms.Queue), ActivationConfigProperty(connectionFactoryJndiName=MyQueueConnectionFactory), ActivationConfigProperty(destinationName=MyRequestQueue)] ra=jboss.jca:service=RARDeployment,name=''jms-ra.rar'' ... ... 三、编写调用消息驱动Bean的SessionBean package service; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.annotation.Resource; import javax.ejb.Stateless; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.MessageProducer; import javax.jms.ObjectMessage; import javax.jms.Queue; import javax.jms.Session; import javax.persistence.EntityManager; import entity.DateBean; import entity.Greeting; @Stateless |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |