开发者社区> 问答> 正文

JMS 如何在J2EE中工作?

企业JavaBeans组件和Web组件之类的应用程序客户端可以同步发送或接收JMS消息。如何工作呢?

展开
收起
YDYK 2020-04-23 22:35:42 731 0
2 条回答
写回答
取消 提交回答
  • 有点尴尬唉 你要寻找的东西已经被吃掉啦!

    一步:配置message-service.xml文件内容如下:然后发布到Jboss中

    queue/liyong.com jboss.mq:service=DestinationManager 第二步:编译和发布message-service.xml拷贝到*\jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\server\default\deploy 第三步:编写EJB Bean发送消息 public static void main(String[] args) { try { InitialContext initialContext=new InitialContext(); QueueConnectionFactory factory = (QueueConnectionFactory)initialContext.lookup("QueueConnectionFactory"); Connection con=factory.createConnection(); //第一个参数:是否建立事务 //第二个参数:表示消息确认模式 Session session=con.createSession(false,QueueSession.AUTO_ACKNOWLEDGE); //查找目标地址 Destination destination = (Destination )initialContext.lookup("queue/liyong.com"); //创建发送消息 MessageProducer producer = session.createProducer(destination); TextMessage msg = session.createTextMessage("您好,这是我的第一个消息驱动QueueBean"); producer.send(msg); //关闭相应资源 producer.close(); session.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } } 第四步:编写接受端代码:采用消息驱动Bean (Message Driven Bean)接收消息 @MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"), @ActivationConfigProperty(propertyName="destination", propertyValue="queue/liyong.com"), @ActivationConfigProperty(propertyName="acknowledgeMode", propertyValue="Auto-acknowledge") }) public class MessageDriverBeanQuee implements MessageListener{ //第一步:注册这个消息驱动监听位置 //第二步:接受消息 //第三步:发布到服务器 @Override public void onMessage(Message message) { TextMessage textMessage=(TextMessage)message; try { System.out.println(textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } } } 第五步:发布EJB Topic: 准备工作:如上 第一步: 配置目标地址文件 queue/liyong.com jboss.mq:service=DestinationManager ------------------------------------------------------------ topic/liyong.com jboss.mq:service=DestinationManager 第二步:编译和发布message-service.xml拷贝到*\jboss-4.2.3.GA-jdk6\jboss-4.2.3.GA\server\default\deploy 第三步:编写EJB Bean发送消息 public static void main(String[] args) { try { InitialContext initialContext=new InitialContext(); TopicConnectionFactory factory = (TopicConnectionFactory)initialContext.lookup("TopicConnectionFactory"); Connection con=factory.createConnection(); //第一个参数:是否建立事务 //第二个参数:表示消息确认模式 Session session=con.createSession(false,TopicSession.AUTO_ACKNOWLEDGE); //查找目标地址 Destination destination = (Destination )initialContext.lookup("topic/liyong.com"); //创建发送消息 MessageProducer producer = session.createProducer(destination); TextMessage msg = session.createTextMessage("您好,这是我的第一个消息驱动TopicBean"); producer.send(msg); //关闭相应资源 producer.close(); session.close(); con.close(); } catch (Exception e) { e.printStackTrace(); } } 第四步:编写接受端代码:采用消息驱动Bean (Message Driven Bean)接收消息 这里我编写了两个Topic来接受消息 <1、 @MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Topic"), @ActivationConfigProperty(propertyName="destination", propertyValue="topic/liyong.com"), @ActivationConfigProperty(propertyName="acknowledgeMode", propertyValue="Auto-acknowledge") }) public class MessageDriverBeanTopic1 implements MessageListener{ @Override public void onMessage(Message message) { TextMessage textMessage=(TextMessage)message; try { System.out.println("MessageDriverBeanTopic1="+textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } } <2、 @MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Topic"), @ActivationConfigProperty(propertyName="destination", propertyValue="topic/liyong.com"), @ActivationConfigProperty(propertyName="acknowledgeMode", propertyValue="Auto-acknowledge") }) public class MessageDriverBeanTopic2 implements MessageListener{ @Override public void onMessage(Message message) { TextMessage textMessage=(TextMessage)message; try { System.out.println("MessageDriverBeanTopic2="+textMessage.getText()); } catch (JMSException e) { e.printStackTrace(); } } 第五步:发布EJB 大功告成....
    2020-04-23 23:03:04
    赞同 展开评论 打赏
  • 用程序客户端可以异步接收消息。借助消息驱动的Bean,JMS提供程序可以选择实现消息的处理。消息驱动Bean是一种企业Bean,它支持异步使用消息。 发送和接收消息的操作是在分布式操作中执行的,它允许在单个事务中进行JMS操作和数据库访问

    2020-04-23 22:35:56
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载