首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从jboss 7.1连接到JMS (Apacher ServiceMix)

从jboss 7.1连接到JMS (Apacher ServiceMix)的过程可以通过以下步骤完成:

  1. 首先,确保已经在JBoss 7.1服务器上安装并配置了JMS适配器。可以参考JBoss官方文档或相关教程进行安装和配置。
  2. 在JBoss 7.1的配置文件中,需要添加JMS连接工厂和JMS队列/主题的配置。这些配置可以在standalone.xml或domain.xml文件中进行修改。以下是一个示例配置:
代码语言:xml
复制

<subsystem xmlns="urn:jboss:domain:messaging:1.4">

代码语言:txt
复制
   <hornetq-server>
代码语言:txt
复制
       <persistence-enabled>true</persistence-enabled>
代码语言:txt
复制
       <journal-file-size>102400</journal-file-size>
代码语言:txt
复制
       <journal-min-files>2</journal-min-files>
代码语言:txt
复制
       <journal-pool-files>10</journal-pool-files>
代码语言:txt
复制
       <connectors>
代码语言:txt
复制
           <netty-connector name="netty" socket-binding="messaging"/>
代码语言:txt
复制
       </connectors>
代码语言:txt
复制
       <acceptors>
代码语言:txt
复制
           <netty-acceptor name="netty" socket-binding="messaging"/>
代码语言:txt
复制
       </acceptors>
代码语言:txt
复制
       <security-settings>
代码语言:txt
复制
           <security-setting match="#">
代码语言:txt
复制
               <permission type="send" roles="guest"/>
代码语言:txt
复制
               <permission type="consume" roles="guest"/>
代码语言:txt
复制
               <permission type="createNonDurableQueue" roles="guest"/>
代码语言:txt
复制
               <permission type="deleteNonDurableQueue" roles="guest"/>
代码语言:txt
复制
           </security-setting>
代码语言:txt
复制
       </security-settings>
代码语言:txt
复制
       <address-settings>
代码语言:txt
复制
           <address-setting match="#">
代码语言:txt
复制
               <dead-letter-address>jms.queue.DLQ</dead-letter-address>
代码语言:txt
复制
               <expiry-address>jms.queue.ExpiryQueue</expiry-address>
代码语言:txt
复制
               <redelivery-delay>0</redelivery-delay>
代码语言:txt
复制
               <max-delivery-attempts>10</max-delivery-attempts>
代码语言:txt
复制
               <max-size-bytes>10485760</max-size-bytes>
代码语言:txt
复制
               <address-full-policy>BLOCK</address-full-policy>
代码语言:txt
复制
               <message-counter-history-day-limit>10</message-counter-history-day-limit>
代码语言:txt
复制
           </address-setting>
代码语言:txt
复制
       </address-settings>
代码语言:txt
复制
       <jms-connection-factories>
代码语言:txt
复制
           <connection-factory name="RemoteConnectionFactory">
代码语言:txt
复制
               <connectors>
代码语言:txt
复制
                   <connector-ref connector-name="netty"/>
代码语言:txt
复制
               </connectors>
代码语言:txt
复制
               <entries>
代码语言:txt
复制
                   <entry name="java:/jms/RemoteConnectionFactory"/>
代码语言:txt
复制
               </entries>
代码语言:txt
复制
           </connection-factory>
代码语言:txt
复制
       </jms-connection-factories>
代码语言:txt
复制
       <jms-destinations>
代码语言:txt
复制
           <jms-queue name="ExampleQueue">
代码语言:txt
复制
               <entry name="java:/jms/queue/ExampleQueue"/>
代码语言:txt
复制
           </jms-queue>
代码语言:txt
复制
       </jms-destinations>
代码语言:txt
复制
   </hornetq-server>

</subsystem>

代码语言:txt
复制

上述配置中,定义了一个名为"RemoteConnectionFactory"的JMS连接工厂和一个名为"ExampleQueue"的JMS队列。根据实际需求,可以添加更多的连接工厂和队列配置。

  1. 在应用程序中,使用JNDI查找方式获取JMS连接工厂和队列对象,并进行消息的发送和接收操作。以下是一个示例代码:
代码语言:java
复制

import javax.jms.Connection;

import javax.jms.ConnectionFactory;

import javax.jms.Destination;

import javax.jms.JMSException;

import javax.jms.Message;

import javax.jms.MessageConsumer;

import javax.jms.MessageProducer;

import javax.jms.Session;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

public class JMSExample {

代码语言:txt
复制
   public static void main(String[] args) {
代码语言:txt
复制
       try {
代码语言:txt
复制
           // 创建JNDI上下文
代码语言:txt
复制
           Context jndiContext = new InitialContext();
代码语言:txt
复制
           // 查找JMS连接工厂
代码语言:txt
复制
           ConnectionFactory connectionFactory = (ConnectionFactory) jndiContext.lookup("java:/jms/RemoteConnectionFactory");
代码语言:txt
复制
           // 创建JMS连接
代码语言:txt
复制
           Connection connection = connectionFactory.createConnection();
代码语言:txt
复制
           // 创建JMS会话
代码语言:txt
复制
           Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
代码语言:txt
复制
           // 查找JMS队列
代码语言:txt
复制
           Destination destination = (Destination) jndiContext.lookup("java:/jms/queue/ExampleQueue");
代码语言:txt
复制
           // 创建JMS消息生产者
代码语言:txt
复制
           MessageProducer producer = session.createProducer(destination);
代码语言:txt
复制
           // 创建JMS消息
代码语言:txt
复制
           Message message = session.createTextMessage("Hello, JMS!");
代码语言:txt
复制
           // 发送JMS消息
代码语言:txt
复制
           producer.send(message);
代码语言:txt
复制
           // 创建JMS消息消费者
代码语言:txt
复制
           MessageConsumer consumer = session.createConsumer(destination);
代码语言:txt
复制
           // 接收JMS消息
代码语言:txt
复制
           Message receivedMessage = consumer.receive();
代码语言:txt
复制
           // 处理接收到的JMS消息
代码语言:txt
复制
           if (receivedMessage instanceof TextMessage) {
代码语言:txt
复制
               TextMessage textMessage = (TextMessage) receivedMessage;
代码语言:txt
复制
               System.out.println("Received message: " + textMessage.getText());
代码语言:txt
复制
           }
代码语言:txt
复制
           // 关闭JMS资源
代码语言:txt
复制
           consumer.close();
代码语言:txt
复制
           producer.close();
代码语言:txt
复制
           session.close();
代码语言:txt
复制
           connection.close();
代码语言:txt
复制
       } catch (NamingException | JMSException e) {
代码语言:txt
复制
           e.printStackTrace();
代码语言:txt
复制
       }
代码语言:txt
复制
   }

}

代码语言:txt
复制

上述代码中,通过JNDI查找方式获取了JMS连接工厂和队列对象,并使用它们进行消息的发送和接收操作。

以上是从jboss 7.1连接到JMS (Apacher ServiceMix)的基本步骤。根据实际需求,可能需要进一步配置和调整。腾讯云提供了一系列与JMS相关的产品和服务,例如消息队列 CMQ(https://cloud.tencent.com/product/cmq)和云函数 SCF(https://cloud.tencent.com/product/scf),可以根据具体场景选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券