open-liberty: невозможно настроить jmsActivationSpec - PullRequest
0 голосов
/ 10 апреля 2019

В моем 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>

У меня также есть бин, управляемый сообщениями, который я использую для обработки сообщений, которые появляются в очереди. И все отлично работает.

Я бы хотел перейти на open-liberty и сохранить мои JMS-материалы, но их документация немного отличается, хотя там есть те же самые элементы конфигурации.

Некоторые свойства отсутствуют, и неясно, как их заменить. Нет hostName и port, вместо этого я нашел только remoteServerAddress, и это должен быть триплет host:port:something_i_dont_understand, поэтому не уверен, что он точно такой же:)

Как я могу настроить все эти необходимые вещи в открытом доступе, чтобы заставить работать мой управляемый сообщениями компонент?

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

1 Ответ

2 голосов
/ 10 апреля 2019

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

...