您的位置:首页 > 其它

EJB部署JMS

2013-12-24 09:52 197 查看
在jboss的server\default\deploy下添加*-service.xml

<?xml version="1.0" encoding="UTF-8"?>
<server>
  <!-- Queue方式-->
<mbean code="org.jboss.mq.server.jmx.Queue" name="jboss.mq.destination:service=Queue,name=wxbQueue">
<attribute name="JNDIName">queue/wxbQueue</attribute>
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
<!-- Queue方式-->

<mbean code="org.jboss.mq.server.jmx.Topic" name="jboss.mq.destination:service=Topic,name=wxbTopic">
  <attribute name="JNDIName">topic/wxbTopic</attribute> <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
</server>


  Queue消息发送类

InitialContext initialContext=new  InitialContext();
QueueConnectionFactory factory=   (QueueConnectionFactory) initialContext.lookup("QueueConnectionFactory");
QueueConnection connection=factory.createQueueConnection();
//第一个属性 true启动事务
QueueSession session=connection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
Destination destination=(Destination) initialContext.lookup("queue/wxbQueue");
MessageProducer producer= session.createProducer(destination);
producer.send(session.createTextMessage("你好 我是EJB发送者  我会发消息的哦"));
session.close();
connection.close();
System.out.println("消息发送成功!!!!!!");


  Queue接受类

@MessageDriven(activationConfig={
@ActivationConfigProperty( propertyName="destinationType",
propertyValue="javax.jms.Queue"),
@ActivationConfigProperty(propertyName="destination",
propertyValue="queue/wxbQueue")
})
public class ReviceBean implements MessageListener {

@Override
public void onMessage(Message arg0) {
TextMessage textMessage=(TextMessage) arg0;
try {
System.out.println(textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}

}


运行Queue发送类 将Queue接受类进行打包(jar)并部署到jboss服务器目录(jboss的server\default\deploy)下 

 Topic发送类

InitialContext initialContext=new  InitialContext();
TopicConnectionFactory factory=(TopicConnectionFactory) initialContext.lookup("TopicConnectionFactory");
TopicConnection connection=factory.createTopicConnection();
TopicSession session=connection.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
Destination  destination=(Destination) initialContext.lookup("topic/wxbTopic");
MessageProducer producer=session.createProducer(destination);
producer.send(session.createTextMessage("Topuc Message Bean"));
session.close();
connection.close();
System.out.println("发送完毕");


  Topic接受类

@MessageDriven(activationConfig={
@ActivationConfigProperty( propertyName="destinationType",
propertyValue="javax.jms.Topic"),
@ActivationConfigProperty(propertyName="destination",
propertyValue="topic/wxbTopic")
})
public class TopicReviceBean implements MessageListener {

@Override
public void onMessage(Message arg0) {

TextMessage message=(TextMessage) arg0;
try {
System.out.println(message.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}

}


   将Topic接受类进行打包(jar)并部署到jboss服务器目录下(jboss的server\default\deploy) 运行Topic发送类
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: