如何从Liberty应用程序客户机(client.xml)连接到IBM MQ上托管的队列?

时间:2019-04-15 13:46:58

标签: java client ibm-mq websphere-liberty mq

我对Liberty来说还很陌生,如果我的问题很简单,请原谅我。

我们有一个独立的应用程序(在Ear中有一个客户端模块jar),在其中将消息发布到IBM MQ中的队列。 我们计划在Liberty Application Client容器中运行该应用程序。

我尝试在client.xml中描述连接工厂,但是失败了。

在client.xml中,为了创建MQ连接工厂,我们进行了以下更改。 1)增加了功能     javaeeClient-7.0     wmqJmsClient-2.0 2)指定了IBM MQ资源适配器的位置     。 3)添加了连接工厂定义。

<feature>javaeeClient-7.0</feature>
<feature>wmqJmsClient-2.0</feature>

<variable name="wmqJmsClient.rar.location" value="/path/to/wmq/rar/wmq.jmsra.rar"/>.

<jmsConnectionFactory jndiName="jms/wmqCF" connectionManagerRef="ConMgr6">
     <properties.wmqJms 
        transportType="CLIENT"
        hostName="localhost" 
        port="1414"
        channel="SYSTEM.DEF.SVRCONN"
        queueManager="QM1"/>
</jmsConnectionFactory>
<connectionManager id="ConMgr6" maxPoolSize="2"/>

<jmsQueue id="jms/queue1" jndiName="jms/wmqQ1">
     <properties.wmqJms 
        baseQueueName="MDBQ" 
        baseQueueManagerName="QM1"/>
</jmsQueue>

但是,当我们运行客户端时,会出现以下错误,并且MQ Connection Factory查找失败。

[错误] CWWKF0040E:在client.xml文件中指定的wmqJmsClient-2.0功能仅支持服务器进程类型,这将导致客户端进程无法运行此功能。 。 。 。 嵌套的异常是org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“ prvdCorrspndncServiceImpl”的bean时出错:通过字段“ jmsTemplate”表示的不满足的依赖关系; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建在类路径资源[config / mq.xml]中定义的名称为'jmsTemplate'的bean时出错:在设置bean属性'connectionFactory'时无法解析对bean'mqConnectionFactory'的引用; 嵌套的异常是org.springframework.beans.factory.BeanCreationException:创建在类路径资源[config / mq.xml]中定义的名称为'mqConnectionFactory'的bean时出错:调用init方法失败;嵌套的异常是javax.naming.NameNotFoundException:中间上下文不存在:jms / wmqCF

相同的MQ配置适用于部署在Liberty Server中并使用server.xml的其他Web应用程序。

请帮助我了解如何创建MQ连接工厂以从Liberty应用程序客户机容器(client.xml)访问IBM MQ上托管的队列。

0 个答案:

没有答案