java web中整合mq_月光软件站 - 编程文档 - Java - 整合MQ和WEBSPHERE

整合MQ和WEBSPHERE

环境:

Win2000 SP4+WebSphere4 AES+MQ5.2.1

本文假设你已正确安装websphere和mq5.2.1并且在mq上定义下列队列管理器,在dos下切换到C:\Program Files\IBM\MQSeries\bin下,键入:

crtmqm -q QM_TEST

strmqm QM_TEST

runmqsc QM_TEST

DEFINE QL(DEADQ_TEST) DEFPSIST(YES) REPLACE

ALTER QMGR DEADQ(DEADQ_TEST)

DEFINE PROCESS(P_TEST) APPLTYPE(WINDOWSNT) APPLICID('runmqchl -c SDR_TEST -m QM_TEST ') REPLACE

DEFINE QL(QT_TEST) USAGE(XMITQ) DEFPSIST(YES) INITQ(SYSTEM.CHANNEL.INITQ) PROCESS(P_TEST) REPLACE

DEFINE QREMOTE(QR_TEST) RNAME(Q_TEST1) RQMNAME(QM_TEST1) XMITQ(QT_TEST) REPLACE

DEFINE CHANNEL(SDR_TEST) CHLTYPE(SDR) CONNAME('192.168.0.28 (2001)') XMITQ(QT_TEST) REPLACE

DEFINE CHANNEL(SDR_TEST1) CHLTYPE(RCVR) REPLACE

DEFINE CHANNEL(S_TEST) CHLTYPE(SVRCONN) REPLACE

runmqlsr -t tcp -p 2001 -m QM_TEST

start chl(SDR_TEST)

(上述语句最好手工键入,因为有的语句分成了两行。-:)

需要的运行环境包的下载地址:

点对点模式(ma_88):

下载上述包并安装。具体系统采取点对点还是发布/订阅模式则自行选择安装。或者两种都安装。切记安装后马上重启并且不要按默认路径把包安装到C:\Program Files下。因为这样会导致CLASSPATH长度超过255,在运行时会报找不到类的错误。

约定:

在本文中%MQ_JAVA_INSTALL_PATH%=C:\MQSeries;

%WAS_HOME%=E:\WebSphere\AppServer;

1.

修改%MQ_JAVA_INSTALL_PATH%\bin的JMSAdmin.config中的,在

INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory的前面加上#

下面另起一行:INITIAL_CONTEXT_FACTORY=com.ibm.ejs.ns.jndi.CNInitialContextFactory

在PROVIDER_URL=ldap://polaris/o=ibm_us,c=us的前面加上#

下面另起一行:PROVIDER_URL=iiop://localhost/

2.

修改JMSAdmin.bat:

@echoon

rem ----------------------------------------------

remIBM MQSeries JMS Admin Tool Execution Script

rem

remNote that the properties passed to the java

remprogram are defaults, and should be edited

remto suit your installation if necessary

rem ----------------------------------------------

java -DMQJMS_LOG_DIR=C:\MQSeries\log

-DMQJMS_TRACE_DIR=C:\MQSeries\trace

-DMQJMS_INSTALL_PATH=C:\MQSeries

-Dserver.root=E:\WebSphere\AppServercom.ibm.mq.jms.admin.JMSAdmin %1 %2 %3 %4 %5

pause

3.

新增一文本文件:

@echo on

@rem Java runtime

set JAVA_HOME=%WAS_HOME%\java\bin

@rem MQ JMS

set MQ=%MQ%;%MQ_JAVA_INSTALL_PATH%\lib

set MQ=%MQ%;%MQ_JAVA_INSTALL_PATH%\lib\com.ibm.mq.jar

set MQ=%MQ%;%MQ_JAVA_INSTALL_PATH%\lib\com.ibm.mqjms.jar

set MQ=%MQ%;%MQ_JAVA_INSTALL_PATH%\lib\jms.jar

set MQ=%MQ%;%MQ_JAVA_INSTALL_PATH%\lib\com.ibm.mq.iiop.jar

set MQ=%MQ%;%MQ_JAVA_INSTALL_PATH%\lib\com.ibm.mqbind.jar

set MQ=%MQ%;%MQ_JAVA_INSTALL_PATH%\lib\jndi.jar

set MQ=%MQ%;E:\WebSphere\AppServer\java\jre\lib\rt.jar

@rem needed if using LDAP or file system for JNDI

set MQ=%MQ%;%MQ_JAVA_INSTALL_PATH%\lib\ldap.jar

@rem needed if using the file system for JNDI

set MQ=%MQ%;%MQ_JAVA_INSTALL_PATH%\lib\fscontext.jar

set MQ=%MQ%;%MQ_JAVA_INSTALL_PATH%\lib\providerutil.jar

@rem needed to use WebSphere name service for JNDI

set WebSphereCP=%WAS_HOME%\lib\ns.jar

set CLASSPATH=%MQ%;%WebSphereCP%;%CLASSPATH%

set PATH=%JAVA_HOME%;%MQ_JAVA_INSTALL_PATH%\lib;%PATH%;

把这个文本文件另存为setenv.bat,保存到%MQ_JAVA_INSTALL_PATH%\bin。

上述命令是把%MQ_JAVA_INSTALL_PATH%\lib\下的所有.jar文件和%WAS_HOME%\java\jre\lib\rt.jar还有%WAS_HOME%\lib\ns.jar加到classpath中,把java_home变量设为%WAS_HOME%\java\bin.

运行cmd,切换到%MQ_JAVA_INSTALL_PATH%\bin下,运行setenv。检查类路径是否正确。

运行jmsadmin -t -v -cfg jmsadmin.config

如果看到上述提示则配置正确,否则请根据提示信息操作。多数是找不到包,请自行修改setenv.bat。

4.

定義QueueConnectionFactory -> QCF:

键入:

define QCF(test) QMANAGER(QM_TEST)

定義Queue

键入:define Q(test1) QUEUE(Q_TEST) QMANAGER(QM_TEST)

键入:end

5.

在Windows 2000的path系統变量中加入%MQ_JAVA_INSTALL_PATH%\lib的路径

运行开始->程序->IBM WebSphere->Application Server v4.0AES->Start Application Server.

在ie地址栏键入在用户标识中随便键入一个名字如test。点击左边树的节点->你的节点名称->应用程序服务器->Default Server—>进程定义->jvm设置

在类路径中加入:%MQ_JAVA_INSTALL_PATH%\lib;

%MQ_JAVA_INSTALL_PATH%\lib\com.ibm.mq.jar;

%MQ_JAVA_INSTALL_PATH%\lib\com.ibm.mqjms.jar;

%WAS_HOME%\lib\j2ee.jar

点“确定”,重启Default Server.

6.

在服务器类路径中输入%MQ_JAVA_INSTALL_PATH%\lib;

%MQ_JAVA_INSTALL_PATH%\lib\com.ibm.mq.jar;

%MQ_JAVA_INSTALL_PATH%\lib\com.ibm.mqjms.jar;

%MQ_JAVA_INSTALL_PATH%\lib\fscontext.jar;

%MQ_JAVA_INSTALL_PATH%\lib\providerutil.jar

在外部初始上下文工厂中输入:com.ibm.ejs.ns.jndi.CNInitialContextFactory点击“确定”

点jms供应商->IBM MQSeries (Local WebSphere Naming Context)->JMS连接工厂,在名称中填入test,在外部jndi名中填入test,在连接类型中选择队列,点击”确定”.

点jms供应商->IBM MQSeries (Local WebSphere Naming Context)->JMS目标,在名称和外部jndi名中填入test1,在目标类型中选择队列.点击”确定”.

编写测试程序:

import javax.naming.*;

import com.ibm.jms.*;

import com.ibm.mq.jms.*;

import javax.jms.*;

import com.ibm.rmi.iiop.*;

import java.util.*;

import com.ibm.ejs.ns.jndi.*;

public class TestConnection {

public TestConnection() {

}

public static void main(String[] args) {

TestConnection testConnection1 = new TestConnection();

try{

Properties props=new Properties();

props.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.ejs.ns.jndi.CNInitialContextFactory");

props.put(Context.PROVIDER_URL,"iiop://localhost/");

props.put(Context.SECURITY_AUTHENTICATION,"none");

InitialContext ctx = new InitialContext(props);

QueueConnectionFactory qcf = (QueueConnectionFactory) ctx.lookup("test");

QueueConnection qc = qcf.createQueueConnection();

QueueSession session = qc.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);

Queue q = (Queue) ctx.lookup("test1");

QueueSender sender = session.createSender(q);

TextMessage tm=session.createTextMessage();

tm.setText("hahaha!");

sender.send(tm);

}catch(javax.naming.NamingException ne){

ne.printStackTrace();

}catch(javax.jms.JMSException jmse){

jmse.printStackTrace();

}

}

}

至此点对点的设置结束。至于发布/订阅模式则稍后再发。

有不对的地方请指教。

down_info.asp?id=14626

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值