jms-queue入門のhello world
5577 ワード
まずメッセージドライバbeanを作成する
このbeanはjndiアドレスqueue/myQueueのメッセージを傍受します
jmsメッセージを送信するには、次の手順に従います.
1、まずjndiコンテキストから接続工場を取得し、TopicConnectionFactory/QueueConnectionFactoryの2種類がある
2、接続工場から一つの接続を取得し、同じ理屈でQueConnction/TOpicConnectionの二種類がある
3、接続によって1つのセッションを創立して、同じくQueueSession/DopicSessionの2種類があります
4、sessionによるメッセージ送信者の作成、同じくQueueSender/TopicPublisherの2種類がある
5、jmsメッセージを送信し、TextMessage、MapMessage、ObjectMessageなどがある
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/myQueue") })
public class MessageConsumer implements MessageListener {
public void onMessage(Message message) {
if (message instanceof TextMessage) {
TextMessage tm = (TextMessage) message;
try {
System.out.println(tm.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
このbeanはjndiアドレスqueue/myQueueのメッセージを傍受します
jmsメッセージを送信するには、次の手順に従います.
1、まずjndiコンテキストから接続工場を取得し、TopicConnectionFactory/QueueConnectionFactoryの2種類がある
2、接続工場から一つの接続を取得し、同じ理屈でQueConnction/TOpicConnectionの二種類がある
3、接続によって1つのセッションを創立して、同じくQueueSession/DopicSessionの2種類があります
4、sessionによるメッセージ送信者の作成、同じくQueueSender/TopicPublisherの2種類がある
5、jmsメッセージを送信し、TextMessage、MapMessage、ObjectMessageなどがある
public void jmsQueue(){
QueueConnectionFactory factory = null ;
QueueConnection conn = null;
QueueSender sender = null;
QueueSession session = null ;
Queue queue = null;
try {
factory = (QueueConnectionFactory)this.context.lookup("ConnectionFactory");
conn = factory.createQueueConnection();
session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
queue = (Queue)this.context.lookup("queue/myQueue");
sender = session.createSender(queue);
TextMessage message = session.createTextMessage();
message.setText("hello world");
sender.send(message);
session.close();
} catch (Exception e) {
e.printStackTrace();
}finally{
if(session!=null){
try {
session.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/myTopic") })
public class TopicMessageConsumer1 implements MessageListener{
public void onMessage(Message message) {
if(message instanceof TextMessage){
TextMessage tm = (TextMessage)message;
try {
System.out.println(this.getClass().getName()+":"+tm.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
@MessageDriven(activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/myTopic") })
public class TopicMessageConsumer implements MessageListener{
public void onMessage(Message message) {
if(message instanceof TextMessage){
TextMessage tm = (TextMessage)message;
try {
System.out.println(this.getClass().getName()+":"+tm.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
}
public void jmsTopic(){
TopicConnectionFactory factory = null ;
TopicConnection conn = null ;
TopicSession session = null ;
TopicPublisher sender = null ;
TextMessage message = null ;
Topic topic = null ;
try {
factory = (TopicConnectionFactory)this.context.lookup("ConnectionFactory");
conn = factory.createTopicConnection();
session = conn.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
topic = (Topic)this.context.lookup("topic/myTopic");
sender = session.createPublisher(topic);
message = session.createTextMessage();
message.setText("hello world");
sender.send(message);
session.close();
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
session.close();
} catch (Exception e2) {
}
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<server>
<mbean code="org.jboss.mq.server.jmx.Queue"
name="jboss.org.destination:server=Queue,name=accpQueue" >
<attribute name="JNDIName" >queue/myQueue </attribute>
<depends optional-attribute-name = "DestinationManager" >
jboss.mq:service=DestinationManager
</depends>
</mbean>
<mbean code="org.jboss.mq.server.jmx.Topic" name="jboss.mq.destination:service=Topic,name=myTopic">
<attribute name="JNDIName" >topic/myTopic </attribute>
<depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
</mbean>
</server>