open-liberty: невозможно настроить 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-компонент, управляемый сообщениями, работал?

Любая помощь приветствуется :)


person ikos23    schedule 10.04.2019    source источник


Ответы (1)


В 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, которая включает поддержку JMS и RA в Liberty. Элемент resourceAdapter настраивает Liberty так, чтобы она знала о существовании RA и о том, где он находится (аналогично переменной, имеющейся у вас в существующей конфигурации). Затем значение атрибута id используется в элементе properties под элементом jmsActivationSpec, поэтому в функции wmqJmsClient-2.0 мы определяем его как wmqJms, в данном случае я использовал mqJms, потому что я думаю, что wmqJms зарезервировано. В любом случае этот конфиг должен работать как в Open Liberty, так и в WebSphere Liberty.

person Alasdair    schedule 10.04.2019