Weblogic Jms简单使用

本文详细介绍了Weblogic JMS的使用,包括服务端配置(JMS服务器和模块)、客户端开发(Jar包导入及程序开发)以及整合Spring的方法。在客户端开发中,强调了JNDI配置和wlfullclient.jar的重要性,并提供了JmsUtil工具类的代码示例。此外,还提到了Spring整合JMS时与ActiveMQ的不同之处。

Weblogic Jms简单使用

 

1       基本用法

       对于Weblogic Jms的使用可以分为两部分,一部分是Weblogic作为服务端发布对应的Jms服务为客户端程序提供服务,一部分是我们的应用程序作为客户端发布消息到Jms服务端或从Jms服务端获取消息进行消费。

 

1.1     Jms服务端

       Weblogic作为Jms服务端提供Jms服务需要在Weblogic的控制台进行一些配置,主要是Jms服务器和Jms模块。Jms服务器作为Jms服务的核心提供Jms服务,也可以说是作为Jms模块的一个管理容器;Jms模块下可以进行ConnectionFactory、Topic、Queue等资源的定义,Weblogic允许我们通过JNDI对它们进行访问。

 

1.1.1配置Jms服务器

       首先我们需要配置一个Jms服务器。在控制台左边的域结构下面找到对应的域,进入到服务->消息传送->Jms服务器,如下图所示。



 

 

       然后在右边出现的列表点击“新建”按钮进入新建Jms服务器的导航页面,之后根据提示一步一步操作即可。

 

1.1.2配置Jms模块

       配置好Jms服务器后我们需要配置对应的Jms模块,Jms模块用来分模块管理一组资源,一个Jms模块下可包括ConnectionFactory、Topic、Queue等资源。在控制台左边的域结构下面,进入到服务->消息传送->Jms模块,如下图所示。



 

 

       然后在右边出现的列表中点击“新建”按钮进入新建Jms模块的导航界面,之后就根据提示进行操作即可。新建好Jms模块后,我们可以在Jms模块列表点击对应Jms模块的链接到对应Jms模块下的资源列表页面,在对应的资源列表页面,我们点击“新建”按钮新建对应的资源。

 

1.2     Jms客户端

1.2.1Jar包导入

       在进行客户端开发的时候我们首先需要导入对应的jar包。按照Weblogic官网文档的说明,我们在开发Weblogic Jms客户端的时候只需要把wlclient.jar和wljmsclient.jar加入classpath即可。这两个jar包在Weblogic安装目录(WL_HOME)下的server/lib目录下,如:/home/weblogic/Oracle/Middleware/Oracle_Home/wlserver/server/lib。但是我在开发的时候只导入这两个jar包,客户端程序跑不起来,错误信息是“Root exception is org.omg.CORBA.COMM_FAILURE:   vmcid: SUN  minor code: 203  completed: No”。而加上wlfullclient.jar则访问正常。wlfullclient.jar默认不在WL_HOME/server/lib目录下,需要我们在WL_HOME/server/lib目录下通过运行“java –jar wljarbuilder.jar”来生成,生成后的wljarbuilder.jar非常大,有60多M,可以将里面一些与工程现有jar包有冲突的类删除。

 

1.2.2程序开发

       客户端程序的开发的时候获取如ConnectionFactory、Topic、Queue等这些在服务端配置的资源时都需要通过JNDI从服务端获取。所以我们首先得构造一个获取JNDI对象的Context。在构造Context时我们需要提供两个参数,Context.PROVIDER_URL和Context.INITIAL_CONTEXT_FACTORY,这两个参数都由Weblogic提供,第一个参数表示提供JNDI对象的服务地址,这里对应的值是“t3://host:port”,host是Weblogic服务主机的IP地址,port是对应的端口;第二个参数是用于获取InitialContext的InitialContextFactory接口的实现类名称,对于Weblogic而言,它应当是“weblogic.jndi.WLInitialContextFactory”。这里我针对它提供了一个工具类,这个工具类的主要作用是把Context封装起来了,然后提供了对应的根据JNDI名称获取对应对象的方法,还封装了一个ConnectionFactory,提供了获取Connection的方法。

 

import java.io.IOException;

import java.util.Hashtable;

import java.util.Properties;

 

import javax.jms.Connection;

import javax.jms.ConnectionFactory;

import javax.jms.JMSException;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

 

import org.apache.log4j.Logger;

 

public class JmsUtil {

  

   private static Context context;

   private static final Properties props = new Properties();

   private static final ConnectionFactory connectionFactory;

   private static final String CONNECTION_FACTORY_JNDI = "weblogic.jms.XAConnectionFactory";

  

   private static final Logger logger = Logger.getLogger(JmsUtil.class);

  

   static {

      try {

         props.load(JmsUtil.<

### WebLogic JMS模块的配置使用WebLogic Server中配置使用JMS(Java Message Service)模块涉及多个步骤,包括创建JMS服务器、JMS模块、连接工厂、队列或主题等。以下是一个详细的指南,帮助完成这些步骤。 #### 1. 创建JMS服务器 JMS服务器是负责管理JMS资源的核心组件。在WebLogic Server中,可以通过管理控制台或使用WLST(WebLogic Scripting Tool)脚本来创建JMS服务器。 **使用管理控制台创建JMS服务器:** 1. 登录到WebLogic Server的管理控制台。 2. 导航到 **Services > Messaging > JMS Servers**。 3. 点击 **New** 按钮,输入JMS服务器的名称。 4. 选择目标服务器或集群,确保JMS服务器部署在合适的服务器实例上。 5. 点击 **Finish** 完成创建。 #### 2. 创建JMS模块 JMS模块是一个容器,用于组织和管理JMS资源(如连接工厂、队列或主题)。可以通过管理控制台或WLST脚本创建JMS模块。 **使用管理控制台创建JMS模块:** 1. 登录到WebLogic Server的管理控制台。 2. 导航到 **Deployments** 页面。 3. 点击 **Install** 按钮,选择 **JMS Module**。 4. 输入JMS模块的名称,并选择目标服务器或集群。 5. 点击 **Next**,选择 **Create a new JMS System Module**。 6. 点击 **Finish** 完成创建。 #### 3. 创建JMS连接工厂 JMS连接工厂用于创建JMS连接,应用程序通过连接工厂与JMS服务器进行通信。 **使用管理控制台创建JMS连接工厂:** 1. 在管理控制台中,导航到 **Services > Messaging > JMS Modules**。 2. 选择之前创建的JMS模块,点击 **Configuration > Connection Factories**。 3. 点击 **New** 按钮,选择 **General** 类型的连接工厂。 4. 输入连接工厂的名称和JNDI名称。 5. 配置其他参数,如客户端ID、事务设置等。 6. 点击 **Finish** 完成创建。 #### 4. 创建JMS队列或主题 JMS队列用于点对点消息传递,而JMS主题用于发布/订阅消息传递。 **使用管理控制台创建JMS队列:** 1. 在管理控制台中,导航到 **Services > Messaging > JMS Modules**。 2. 选择之前创建的JMS模块,点击 **Configuration > Queues**。 3. 点击 **New** 按钮,输入队列的名称和JNDI名称。 4. 配置其他参数,如队列的目标服务器、持久化设置等。 5. 点击 **Finish** 完成创建。 **使用管理控制台创建JMS主题:** 1. 在管理控制台中,导航到 **Services > Messaging > JMS Modules**。 2. 选择之前创建的JMS模块,点击 **Configuration > Topics**。 3. 点击 **New** 按钮,输入主题的名称和JNDI名称。 4. 配置其他参数,如主题的目标服务器、持久化设置等。 5. 点击 **Finish** 完成创建。 #### 5. 部署和测试JMS模块 完成JMS模块的创建后,需要将其部署到目标服务器或集群上,并进行测试。 **部署JMS模块:** 1. 在管理控制台中,导航到 **Deployments** 页面。 2. 选择之前创建的JMS模块,点击 **Start** 按钮,选择 **Servicing All Requests**。 3. 确保JMS模块已成功部署并处于活动状态。 **测试JMS模块:** 1. 编写简单JMS生产者和消费者代码,使用JNDI查找连接工厂和队列/主题。 2. 运行生产者代码,发送消息到队列或主题。 3. 运行消费者代码,接收并处理消息。 以下是一个简单JMS生产者示例代码: ```java import javax.jms.*; import javax.naming.*; public class JmsProducer { public static void main(String[] args) { try { // 获取JNDI上下文 Context context = new InitialContext(); // 查找连接工厂 ConnectionFactory factory = (ConnectionFactory) context.lookup("jndi/ConnectionFactory"); // 创建连接 Connection connection = factory.createConnection(); // 创建会话 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 查找队列 Destination destination = (Destination) context.lookup("jndi/Queue"); // 创建消息生产者 MessageProducer producer = session.createProducer(destination); // 创建文本消息 TextMessage message = session.createTextMessage("Hello, World!"); // 发送消息 producer.send(message); // 关闭连接 connection.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 以下是一个简单JMS消费者示例代码: ```java import javax.jms.*; import javax.naming.*; public class JmsConsumer { public static void main(String[] args) { try { // 获取JNDI上下文 Context context = new InitialContext(); // 查找连接工厂 ConnectionFactory factory = (ConnectionFactory) context.lookup("jndi/ConnectionFactory"); // 创建连接 Connection connection = factory.createConnection(); // 创建会话 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 查找队列 Destination destination = (Destination) context.lookup("jndi/Queue"); // 创建消息消费者 MessageConsumer consumer = session.createConsumer(destination); // 启动连接 connection.start(); // 接收消息 Message message = consumer.receive(5000); if (message instanceof TextMessage) { TextMessage textMessage = (TextMessage) message; System.out.println("Received message: " + textMessage.getText()); } // 关闭连接 connection.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` #### 6. 监控和管理JMS模块 WebLogic Server提供了丰富的监控和管理功能,可以实时查看JMS模块的运行状态、消息队列的大小、消息的发送和接收情况等。可以通过管理控制台或使用WLST脚本进行监控和管理。 **使用管理控制台监控JMS模块:** 1. 登录到WebLogic Server的管理控制台。 2. 导航到 **Monitoring > Messaging**。 3. 查看JMS服务器、连接工厂、队列或主题的运行状态和性能指标。 **使用WLST脚本监控JMS模块:** 1. 启动WLST脚本工具。 2. 连接到WebLogic Server。 3. 使用`cd`命令导航到JMS模块的MBean路径。 4. 使用`get`命令获取JMS模块的属性值。 通过以上步骤,可以顺利完成WebLogic JMS模块的配置使用。在整个过程中,确保所有配置项都符合实际需求,并进行充分的测试和验证。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值