JBoss6 消息驱动文件配置

来源:互联网 发布:java面向对象编程题库 编辑:程序博客网 时间:2024/05/18 00:48

首先在jboss-6.0.0.Final\server\all\deploy\hornetq\hornetq-jms.xml文件的configuration标签最后可以加入以下两种类型的目标地址

第一种订阅和发布(Pub/Sub)

<topic name="testTopic">

 <entry name="/topic/topicA"/>

</topic>

第二中,点对点 (PTP) 

<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表示