myeclipse10 实现EJB3 MDB之发布式通信

来源:互联网 发布:coreutils windows 编辑:程序博客网 时间:2024/05/22 00:55

配置消息目标地址

<?xml version="1.0" encoding="UTF-8"?><!-- $Id: oil-service.xml 38188 2005-11-17 00:11:34Z adrian $ --><server>  <!-- JBossMQ communication using the Optimizated Invocation Layer       The server connects back to the client on a different socket -->  <mbean code="org.jboss.mq.server.jmx.Topic" name="jboss.mq.destination:service=Topic,name=chatTopic">    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends><attribute name="JNDIName">topic/chatTopic</attribute>  </mbean></server>

接受消息

package com.java;import javax.ejb.ActivationConfigProperty;import javax.ejb.MessageDriven;import javax.jms.JMSException;import javax.jms.Message;import javax.jms.MessageListener;import javax.jms.TextMessage;@MessageDriven(activationConfig = {@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),@ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/mytopic") })public class MyMDBBean implements MessageListener {public void onMessage(Message msg) {try {TextMessage textMessage = (TextMessage) msg;System.out.println("MyTopicMDBBean被调用了【" + textMessage.getText()+ "】");} catch (JMSException e) {e.printStackTrace();}}}

创建消息生产者

<%@ page language="java"import="java.util.*,javax.naming.*,java.text.*,javax.jms.*,java.util.Properties"pageEncoding="UTF-8"%><%InitialContext ctx = new InitialContext();//获取ConnectionFactory对象TopicConnectionFactory factory = (TopicConnectionFactory) ctx.lookup("ConnectionFactory");//创建TopicConnection对象TopicConnection connection = factory.createTopicConnection();//创建TopicSession对象,第一个参数表示事务自动提交,第二个参数标识一旦消息被正确送达,将自动发回响应TopicSession sess = connection.createTopicSession(false,TopicSession.AUTO_ACKNOWLEDGE);//获得Destination对象Topic topic = (Topic) ctx.lookup("topic/mytopic");//创建文本消息TextMessage msg = sess.createTextMessage("世界,你好");//创建发布者TopicPublisher publisher = sess.createPublisher(topic);//发送消息publisher.publish(msg);//关闭会话sess.close();%>


0 0
原创粉丝点击