jboos6 JMS topic 使用

jboos6

jboss-6.1.0.Final\server\all\deploy\hornetq\hornetq-jms.xml

加入配置 

<topic name="MessageTopic">
      <entry name="/topic/MsgTopic"/>
   </topic>

topic配置为一对多。即一条消息发出去,可以由多个MessageListener接收处理。

也可配置为点对点queue。

服务端建立messagebean

 

[java] view plain copy
  1. package com.message;  
  2.   
  3. import javax.ejb.ActivationConfigProperty;  
  4. import javax.ejb.MessageDriven;  
  5. import javax.jms.JMSException;  
  6. import javax.jms.Message;  
  7. import javax.jms.MessageListener;  
  8. import javax.jms.TextMessage;  
  9.   
  10. @MessageDriven(mappedName = "jms/MyMessageCenter", activationConfig = {  
  11.         @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),   
  12.         @ActivationConfigProperty(propertyName = "destination", propertyValue = "/topic/MsgTopic")  
  13. })  
  14. public class MyMessageCenter implements MessageListener {  
  15.   
  16.     public void onMessage(Message message) {  
  17.         // TODO Auto-generated method stub  
  18.         TextMessage msg=(TextMessage) message;  
  19.         try {  
  20.             System.out.println(msg.getText()+"---------------3");  
  21.         } catch (JMSException e) {  
  22.             // TODO Auto-generated catch block  
  23.             e.printStackTrace();  
  24.         }  
  25.     }  


发布到deploy下

客户端调用

[java] view plain copy
  1. package com;  
  2.   
  3. import java.util.Properties;  
  4.   
  5. import javax.jms.Connection;  
  6. import javax.jms.ConnectionFactory;  
  7. import javax.jms.Destination;  
  8. import javax.jms.JMSException;  
  9. import javax.jms.MessageProducer;  
  10. import javax.jms.Session;  
  11. import javax.jms.TextMessage;  
  12. import javax.naming.InitialContext;  
  13. import javax.naming.NamingException;  
  14.   
  15. public class test {  
  16. public static void main(String[] args){  
  17.     Properties prop=new Properties();  
  18.     prop.setProperty("java.naming.factory.initial""org.jnp.interfaces.NamingContextFactory");  
  19.     prop.setProperty("java.naming.provider.url""localhost:1100");  
  20.     prop.setProperty("java.naming.factory.url.pkgs""org.jboss.naming");  
  21.     InitialContext ctx;  
  22.     try {  
  23.         ctx=new InitialContext(prop);  
  24.         ConnectionFactory cf = (ConnectionFactory) ctx  
  25.         .lookup("ConnectionFactory");  
  26.         Connection con = cf.createConnection();  
  27.         Session session = con  
  28.         .createSession(false, Session.AUTO_ACKNOWLEDGE);  
  29.         Destination dest = (Destination) ctx.lookup("/topic/MsgTopic");  
  30.         MessageProducer pro = session.createProducer(dest);  
  31.         TextMessage message=session.createTextMessage("hello message!!!");  
  32.         pro.send(message);  
  33.         session.close();  
  34.     } catch (NamingException e) {  
  35.         // TODO Auto-generated catch block  
  36.         e.printStackTrace();  
  37.     } catch (JMSException e) {  
  38.         // TODO Auto-generated catch block  
  39.         e.printStackTrace();  
  40.     }  
  41.       
  42. }  
  43.   
  44. }  


控制台显示
hello message!!!--------------3

ok。

其实这些配置可以再jboss的管理页面完成配置的。即http://localhost:8080/admin-console/

  • 发表于 2017-11-13 17:05
  • 阅读 ( 1269 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
- Nightmare

33 篇文章

作家榜 »

  1. 威猛的小站长 124 文章
  2. Jonny 65 文章
  3. 江南烟雨 36 文章
  4. - Nightmare 33 文章
  5. doublechina 31 文章
  6. HJ社区-肖峰 29 文章
  7. 伪摄影 22 文章
  8. Alan 14 文章