Weblogic Jms简单使用

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 {

      

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值