博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

EJB部署JMS

Posted on 2013-12-24 09:52  TimeFight  阅读(245)  评论(0)    收藏  举报

在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发送类