weblogic bea_将BEA WebLogic Server与WebSphere MQ集成

weblogic bea

本文向您展示如何在Windows®上创建默认的BEA WebLogic Server V8.1 SP4实例,将其连接到IBM®WebSphere®MQ Java™Messaging Service(JMS),以及运行一些示例应用程序。 有关WebLogic的WebSphere MQ需求的信息,请参阅WebSphere MQ系统需求 。 本文使用连接到WebSphere MQ的示例消息驱动Bean(MDB)来接收消息,并且相同的MDB将接收到的消息转发到另一个队列。

创建WebSphere MQ队列管理器并配置JMS JNDI名称空间

要使用此示例,您需要在JNDI名称空间中创建一个QueueConnectionFactory和Queue对象,以连接到队列管理器并访问队列。 使用以下命令在WebSphere MQ中创建队列管理器和队列:

  1. 创建队列管理器: crtmqm testqmgr
  2. 启动队列管理器: strmqm testqmgr
  3. 在队列管理器中创建队列:
    runmqsc testqmgr
    	DEFINE QLOCAL("MyMDBQueue")
    	DEFINE QLOCAL("MyReplyQueue")
    end

接下来,创建一个基于文件的简单JNDI上下文,并在该JNDI名称空间中配置JMS对象。 在WebSphere Application Server社区版中运行的应用程序使用这些JNDI对象来连接到WebSphere MQ队列管理器。 对于本练习,WebLogic和WebSphere MQ应该在同一台机器上。

该设置适用于基于文件的JNDI。 在继续下一步之前,创建目录C:\JNDI-Directory 。 使用以下内容创建MyAdmin.config

INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
PROVIDER_URL=file:/C:/JNDI-Directory
SECURITY_AUTHENTICATION=none

接下来,通过执行以下命令来创建QueueConnectionFactory和Queue对象:

C:\Program Files\IBM\WebSphere MQ\Java\bin\JMSAdmin.bat -cfg MyAdmin.config

您应该看到以下提示,可以在其中配置JNDI对象: InitCtx>

在提示符下,键入以下命令,并在每个命令之后按Enter

def xaqcf(ReceiverQCF) qmgr(testqmgr)
def xaqcf(SenderQCF) qmgr(testqmgr)
def q(MyMDBQueue) qmgr(testqmgr) queue(MyMDBQueue)
def q(MyReplyQueue) qmgr(testqmgr) queue(MyReplyQueue)
end

以上配置是基本步骤。 有关JMSAdmin工具的更多信息,请参阅WebSphere MQ文档:Using Java中的 “第5章。使用WebSphere MQ JMS管理工具”。

现在,WebSphere MQ JMS配置已准备好进行点对点消息传递。

创建WebLogic服务器实例

创建一个WebLogic服务器实例,然后将WebSphere MQ JMS JAR文件添加到其类路径并执行以下配置步骤:

  1. 安装WebLogic Server,例如在C:\bea
  2. 打开命令窗口( cmd.exe )。
  3. 执行C:\bea\weblogic81\server\bin\setWLSEnv.cmd
  4. 使用向导创建服务器:单击开始=>所有程序=> BEA WebLogic Platform 8.1 =>配置向导 。 或者,您可以使用以下命令:
    1. 创建一个要在其中运行测试的目录,例如C:\jms\WebLogic\test\server ,并将其设为当前目录。
    2. 执行以下命令来创建域和服务器:
      java -Dweblogic.Domain=MQJMSTEST -Dweblogic.Name=MQJMSTESTSERVER
           -Dweblogic.management.username=weblogic -Dweblogic.management.password=weblogic
           -Dweblogic.management.GenerateDefaultConfig=true weblogic.Server
  5. 上面的命令完成后,停止服务器,打开另一个命令窗口,然后通过执行以下命令来调用C:\bea\weblogic81\server\bin\setWLSEnv.cmd
    java weblogic.Admin -url t3://localhost:7001 -username weblogic 
                                           -password weblogic FORCESHUTDOWN
  6. 通过编辑C:\jms\WebLogic\test\server\startMQJMSTEST.cmd并在启动服务器JVM的最后一条命令之前添加以下行,来配置WebLogic Server类路径以访问WebSphere MQ JMS JAR文件:
    set MQ_JAVA=C:\Program Files\IBM\WebSphere MQ\Java\lib
    set CLASSPATH=%MQ_JAVA%\com.ibm.mq.jar;%CLASSPATH%
    set CLASSPATH=%MQ_JAVA%\com.ibm.mqjms.jar;%CLASSPATH%;
    set CLASSPATH=%MQ_JAVA%\com.ibm.mqetclient.jar;%CLASSPATH%
        (Above line is applicable only for WebSphere MQ + Extended Transactional Client)
    set CLASSPATH=%MQ_JAVA%\fscontext.jar;%CLASSPATH%
    set PATH=%MQ_JAVA%;%PATH%
  7. 通过执行C:\jms\WebLogic\test\server\startMQJMSTEST.cmd

WebLogic Server应该正在运行。 使用http://localhost:7001/console访问其管理控制台,并使用用户名和密码进行身份验证(在此示例中,我们都使用了weblogic )。

配置WebLogic外部JMS服务器

接下来,使用JNDI设置配置WebLogic外部JMS提供程序以对其进行访问。

访问http://localhost:7001/console ,并使用上面创建WebLogic服务器实例时使用的用户名和密码进行身份验证。 登录后,导航至MQJMSTEST =>服务=> JMS =>外部JMS服务器 。 在右窗格中,单击“ 配置新的外部JMSServer”,然后输入以下值:

  • 名称MQJMSTEST Foreign JMS Server
  • JNDI初始上下文工厂com.sun.jndi.fscontext.RefFSContextFactory
  • JNDI连接URLfile:/C:/JNDI-Directory

屏幕应如下所示:

图1.创建新的外部JMS服务器。
创建新的外部JMS服务器

单击右下角的创建 。 您将获得另一个屏幕,以选择需要在其中创建此外部JMS服务器的WebLogic Server实例。 选择MQJMSTESTSERVER ,然后单击Apply

现在,您可以在新创建的外部JMS提供程序中配置QueueConnectionFactory和Queue对象。 通过此步骤,我们要做的是将基于文件的JNDI中定义的QueueConnectionFactory和Queue引用为外部JMS提供程序。

在外部JMS提供程序中创建QueueConnectionFactory对象

导航至MQJMSTEST =>服务=> JMS =>外部JMS服务器=> MQJMSTEST外部JMS服务器=>外部JMS连接工厂 。 在右窗格中,单击“ 配置新的外部JMSConnection工厂”,然后输入以下值:

  • 名称WLSenderQCF
  • 本地JNDI名称jms/WLSenderQCF
  • 远程JNDI名称SenderQCF

远程JNDI名称应与使用JMSAdmin工具在基于文件的JNDI中创建的QueueConnectionFactory名称匹配。 屏幕应如下所示:

图2.创建QueueConnectionFactory。
创建QueueConnectionFactory

单击右下角的创建以完成此操作。

在外部JMS提供程序中创建目标对象

要创建目标,请导航至MQJMSTEST =>服务=> JMS =>外部JMS服务器=> MQJMSTEST外部JMS服务器=>外部JMS目标 。 在右窗格中,单击“ 配置新的外部JMSDestination”,然后输入以下值:

  • 名称WLMyReplyQueue
  • 本地JNDI名称jms/WLMyReplyQueue
  • 远程JNDI名称MyReplyQueue

远程JNDI名称应与使用JMSAdmin工具在基于文件的JNDI中创建的目的地匹配。 屏幕应如下所示:

图3.创建队列目的地。
创建队列目的地

单击右下角的创建以完成操作。 现在,您已经准备好使用外部JMS配置来研究MDB应用程序。

开发示例应用程序并将其部署在WebLogic上

在这里,我们使用一个MDB,它在队列管理器testqmgr监听来自MyMDBQueue的消息。 onMessage()通过调用putMessage(javax.jms.Message msg)方法来拾取消息并将相同的消息转发到MyReplyQueue 。 您可以在下面下载wlresources.zip文件包含示例应用程序和用于部署到WebLogic的WLSampleMDB.ear文件。

wlresources.zip压缩到C:\wlresources等目录,并使用以下步骤构建名为WLSampleMDB.ear的EAR文件。 为了您的方便,下载文件中提供了一个已经组装好的WLSampleMDB.ear文件。

  1. 打开命令提示符并执行以下命令:
  2. cd C:\wlresources
  3. C:\bea\weblogic81\server\bin\setWLSEnv.cmd
  4. javac com\ibm\WLSampleMDB\SampleMDBBean.java
  5. jar -cvf WLSampleMDB.jar com META-INF (创建WLSampleMDB.jar,您将在其上进行进一步的工作以将其部署在服务器上)。
  6. 启动应用程序构建器:单击开始=>所有程序=> BEA WebLogic Platform 8.1 =>其他开发工具=> WebLogic Builder
  7. 在WebLogic Builder中,单击File => Open,然后选择在步骤5中创建的WLSampleMDB.jar (如果出现提示,请单击Yes,以创建Deployment Descriptor)。
  8. 单击左侧树视图上的SampleMDBBean ,选择“ 常规”选项卡,然后更改以下值:
    • JNDI名称SampleMDBBean
    • 交易超时300
    • 目标类型javax.jms.Queue
    • 目标JNDIMyMDBQueue (这是使用JMSAdmin工具创建队列时提供的名称)
  9. 选择“ 外部JMS提供程序”选项卡,选择“ 使用外部JMS提供程序” ,然后输入以下值:
    • 提供者URLfile:/C:/JNDI-Directory
    • 连接工厂JNDI名称ReceiverQCF (我们使用JMSAdmin工具为MDB接收消息而创建的连接工厂名称)
    • 初始上下文工厂com.sun.jndi.fscontext.RefFSContextFactory
  10. 选择“ 高级”选项卡,并确保为“ 交易类型 ”选择了“ 容器 ”值。
  11. 从左侧树视图的SampleMDBBean下,选择“ 方法”,并确保根据需要选择了“ 默认”事务
  12. 在左侧树视图的SampleMDBBean下,选择Resources
  13. 从右侧窗格中选择Resource Reference选项卡,然后单击Add (如果已经定义了资源,请单击Edit )。 输入以下值:
    • 资源参考名称WLSenderQCF
    • 资源类型javax.jms.QueueConnectionFactory
    • 资源授权Application
    • JNDI名称jms/WLSenderQCF
    • 共享范围Unsharable 共享
  14. 单击确定 。 同样,使用以下值添加另一个资源引用:
    • 资源参考名称MyReplyQueue
    • 资源类型javax.jms.Queue
    • 资源授权Application
    • JNDI名称jms/MyReplyQueue
    • 共享范围Unsharable 共享
  15. 单击文件=>保存以保存保存WLSampleMDB.jar。
  16. 要部署此组装的JAR文件,请单击Tools => Deploy Module 。 如果要求您提供配置值以连接到WebLogic Server,请验证它们是否与以下值匹配:
    • 协议t3
    • 主机localhost
    • 港口7001
    • 服务器名称MQJMSTESTSERVER
    • 系统用户名weblogic
    • 系统用户密码weblogic
    • 现在,单击“ 连接”,然后在下一个弹出窗口中,单击“ 部署模块”
  17. 在命令提示符处使用命令amqsput MyMDBQueue testqmgr测试应用程序,然后键入要作为消息输入的任何文本,现在观察运行WebLogic Server的控制台,您应该能够看到以下内容:
    Message Received:
    JMS Message class: jms_text
    JMSType: null
    JMSDeliveryMode: 1
    JMSExpiration: 0
    JMSPriority: 0
    JMSMessageID: ID:414d512074657374716d6772202020203f40254420000908
    JMSTimestamp: 1143559825190
    JMSCorrelationID:null
    JMSDestination: null
    JMSReplyTo: null
    JMSRedelivered: false
    JMS_IBM_PutDate:20060328
    JMSXAppID:WebSphere MQ\bin\amqsput.exe
    JMS_IBM_Format:MQSTR
    JMS_IBM_PutApplType:11
    JMS_IBM_MsgType:8
    JMSXUserID:sanjay
    JMS_IBM_PutTime:15302519
    JMSXDeliveryCount:1
    This is a Test Message
    
    putting the message to MyReplyQueue
    looked up QueueConnectionFactory: weblogic.deployment.jms.PooledConnectionFactory@8710bd
    looked up Queue: queue://testqmgr/MyReplyQueue
    Message send

在按下Enter键并带空行之后,您将退出amqsput命令。 有关amqsput更多信息,请参阅WebSphere MQ文档。

结论

我们已经配置了WebLogic Server和WebSphere MQ相互连接,并使用MDB示例获取消息并将其转发到全局事务中的另一个队列。


翻译自: https://www.ibm.com/developerworks/websphere/library/techarticles/0604_kesavan/0604_kesavan.html

weblogic bea

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值