首先在jboss-6.0.0.Final\server\all\deploy\hornetq\hornetq-jms.xml文件的configuration标签最后可以加入以下两种类型的目标地址 第一种订阅和发布 <topic name="testTopic"> <entry name="/topic/topicA"/> </topic> 第二中,点对点 <queue name="testQueue"> <entry name="/queue/queueA"/> </queue> ,客户端发送代码: 首先在src目录加入jndi.properties文件 文件内容为: java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.provider.url=localhost\:1099 然后新建一个普通Java类开发发送消息 public static void main(String[] args) { try { InitialContext init = new InitialContext(); ConnectionFactory cf = (ConnectionFactory) init .lookup("ConnectionFactory"); Connection con = cf.createConnection(); Session session = con .createSession(false, Session.AUTO_ACKNOWLEDGE); Destination dest = (Destination) init.lookup("/queue/queueA"); MessageProducer prd = session.createProducer(dest); prd.send(session.createTextMessage(Testqu.class + "fudongnihao")); session.close(); } catch (Exception e) { e.printStackTrace(); } }
发送完之后可以采用消息驱动bean接收消息关键代码如下: 首先应该把JBOSS client目录的包加入到消息驱动bean工程类路径下面然后还是开始消息
@MessageDriven(activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), @ActivationConfigProperty(propertyName = "destination", propertyValue = "/queue/queueA"), }) public class DiverBean implements MessageListener {
@Override public void onMessage(Message arg0) { TextMessage msg = (TextMessage) arg0; try { System.out.println(msg.getText()); } catch (JMSException e) { // TODO Auto-generated catch block e.printStackTrace(); }
}
}
后记: PTP(点对点) 消息传递模型规定了一条消息只能传递给一个接收方。采用javax.jms.Queue 表示。 Pub/sub (发布和订阅)消息传递模型允许一条消息传递给多个接收方。采用javax.jms.Topic表示 |
jboss6配置jms
最新推荐文章于 2019-07-08 18:52:19 发布