我的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
,所以不确定是否完全相同:)
如何在开放自由中配置所有这些必需的内容,以使消息驱动的Bean工作?
感谢您的帮助:)
答案 0 :(得分:2)
在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
功能和jca-1.7
,以在Liberty中启用JMS和RA支持。 resourceAdapter
元素将Liberty配置为了解RA的存在及其位置(类似于您现有配置中的变量)。然后,在jmsActivationSpec
元素下的properties元素上使用id属性的值,因此在wmqJmsClient-2.0
功能中,我们将其定义为wmqJms
,在这种情况下,我使用了{ {1}},因为我认为mqJms
是保留的。无论如何,此配置在Open Liberty和WebSphere Liberty中均应起作用。