open-liberty:无法配置 jmsActivationSpec
open-liberty : cannot configure jmsActivationSpec
我的 IBM Liberty server.xml
中有以下配置:
<!-- resource adapter location -->
<variable name="wmqJmsClient.rar.location" value="${shared.resource.dir}/lib/global/wmq.jmsra-9.1.0.0.rar"/>
<!-- jmsActivationSpec configs -->
<jmsActivationSpec authDataRef="myAuthData" id="my-app-name/MyMessageDrivenBean">
<properties.wmqJms destinationRef="jms/MyQueue"
destinationType="javax.jms.Queue"
sslCipherSuite="SSL_RSA_WITH_AES_256_CBC_SHA256"
channel="MY.MQCHANNEL"
queueManager="MY_QM"
hostName="myhost" port="32100"
transportType="CLIENT" />
</jmsActivationSpec>
我还有一个消息驱动的 bean,用于处理出现在队列中的消息。一切正常。
我想迁移到 open-liberty 并保留我的 JMS 内容,但他们的文档有点不同,即使那里有相同的配置元素。
缺少一些属性,不清楚如何替换它们。没有 hostName
和 port
,相反我只找到了 remoteServerAddress
并且它必须是一个三元组 host:port:something_i_dont_understand
所以不确定它是否完全相同 :)
如何在 open-liberty 中配置所有这些必需的东西以使我的消息驱动 bean 工作?
感谢任何帮助:)
在 WebSphere Liberty 中,您可能正在使用 wmqJmsClient-2.0
功能。这在 Open Liberty 中不可用,但它实际上只是一个方便的功能。您应该能够配置以下内容:
<featureManager>
<feature>jms-2.0</feature>
<feature>jca-1.7</feature>
</featureManager>
<resourceAdapter id="mqJMS" location="${shared.resource.dir}/lib/global/wmq.jmsra-9.1.0.0.rar"/>
<!-- jmsActivationSpec configs -->
<jmsActivationSpec authDataRef="myAuthData" id="my-app-name/MyMessageDrivenBean">
<properties.mqJms destinationRef="jms/MyQueue"
destinationType="javax.jms.Queue"
sslCipherSuite="SSL_RSA_WITH_AES_256_CBC_SHA256"
channel="MY.MQCHANNEL"
queueManager="MY_QM"
hostName="myhost" port="32100"
transportType="CLIENT" />
</jmsActivationSpec>
这配置了 jms-2.0
功能,以及在 Liberty 中启用 JMS 和 RA 支持的 jca-1.7
。 resourceAdapter
元素将 Liberty 配置为了解 RA 的存在及其位置(类似于您现有配置中的变量)。然后在 jmsActivationSpec
元素下的 properties 元素上使用 id 属性的值,因此在 wmqJmsClient-2.0
特性中我们将其定义为 wmqJms
,在本例中我使用了 mqJms
因为我认为 wmqJms
是保留的。在任何情况下,此配置都应该适用于 Open Liberty 和 WebSphere Liberty。
我的 IBM Liberty server.xml
中有以下配置:
<!-- resource adapter location -->
<variable name="wmqJmsClient.rar.location" value="${shared.resource.dir}/lib/global/wmq.jmsra-9.1.0.0.rar"/>
<!-- jmsActivationSpec configs -->
<jmsActivationSpec authDataRef="myAuthData" id="my-app-name/MyMessageDrivenBean">
<properties.wmqJms destinationRef="jms/MyQueue"
destinationType="javax.jms.Queue"
sslCipherSuite="SSL_RSA_WITH_AES_256_CBC_SHA256"
channel="MY.MQCHANNEL"
queueManager="MY_QM"
hostName="myhost" port="32100"
transportType="CLIENT" />
</jmsActivationSpec>
我还有一个消息驱动的 bean,用于处理出现在队列中的消息。一切正常。
我想迁移到 open-liberty 并保留我的 JMS 内容,但他们的文档有点不同,即使那里有相同的配置元素。
缺少一些属性,不清楚如何替换它们。没有 hostName
和 port
,相反我只找到了 remoteServerAddress
并且它必须是一个三元组 host:port:something_i_dont_understand
所以不确定它是否完全相同 :)
如何在 open-liberty 中配置所有这些必需的东西以使我的消息驱动 bean 工作?
感谢任何帮助:)
在 WebSphere Liberty 中,您可能正在使用 wmqJmsClient-2.0
功能。这在 Open Liberty 中不可用,但它实际上只是一个方便的功能。您应该能够配置以下内容:
<featureManager>
<feature>jms-2.0</feature>
<feature>jca-1.7</feature>
</featureManager>
<resourceAdapter id="mqJMS" location="${shared.resource.dir}/lib/global/wmq.jmsra-9.1.0.0.rar"/>
<!-- jmsActivationSpec configs -->
<jmsActivationSpec authDataRef="myAuthData" id="my-app-name/MyMessageDrivenBean">
<properties.mqJms destinationRef="jms/MyQueue"
destinationType="javax.jms.Queue"
sslCipherSuite="SSL_RSA_WITH_AES_256_CBC_SHA256"
channel="MY.MQCHANNEL"
queueManager="MY_QM"
hostName="myhost" port="32100"
transportType="CLIENT" />
</jmsActivationSpec>
这配置了 jms-2.0
功能,以及在 Liberty 中启用 JMS 和 RA 支持的 jca-1.7
。 resourceAdapter
元素将 Liberty 配置为了解 RA 的存在及其位置(类似于您现有配置中的变量)。然后在 jmsActivationSpec
元素下的 properties 元素上使用 id 属性的值,因此在 wmqJmsClient-2.0
特性中我们将其定义为 wmqJms
,在本例中我使用了 mqJms
因为我认为 wmqJms
是保留的。在任何情况下,此配置都应该适用于 Open Liberty 和 WebSphere Liberty。