Почему моя очередь не может быть найдена при поиске по контексту? - PullRequest
2 голосов
/ 08 мая 2020

У нас есть служба для отправки сообщений в очередь IBM MQ.

Я пытаюсь заставить это работать в Liberty, но когда класс обслуживания находится в postConstruct, я получаю исключение NullPointerException при поиске очереди по имени JNDI.

Вот соответствующая часть сервера. xml конфигурация:

<resourceAdapter id="mqJms" location="/etc/liberty/wmq/wmq.jmsra.rar"/>
<authData id="mqJms.auth" user="user" password="password"/>

<jmsQueueConnectionFactory jndiName="jms/queueConnectionFactory" connectionManagerRef="ConMgr4" containerAuthDataRef="mqJms.auth">
    <properties.mqJms transportType="CLIENT"
        hostName="server" port="1234"
        channel="CHANNEL"/>
</jmsQueueConnectionFactory>

<connectionManager id="ConMgr4"
    connectionTimeout="30s"
    maxPoolSize="50" minPoolSize="1"
    reapTime="60s" agedTimeout="0"/>

    <jmsQueue id="jms/outgoingRequestQueue" jndiName="jms/outgoingRequestQueue">
        <properties.mqJms queueName="QUEUEOUT"/>
    </jmsQueue>

    <jmsActivationSpec id="earname/warname/JMSService" authDataRef="mqJms.auth">
        <properties.mqJms destinationRef="jms/outgoingRequestQueue" destinationType="javax.jms.Queue"/>
    </jmsActivationSpec>

Это ошибка, которую я получаю:

J2CA8500E: An error occurred while attempting to configure a property queueName of configuration element com.ibm.ws.jca.adminObject.supertype[jms/incomingResponseQueue] on the class com.ibm.mq.connector.outbound.MQQueueProxy: java.lang.NullPointerException
        at com.ibm.ws.jca.internal.BootstrapContextImpl.configure(BootstrapContextImpl.java:471)

Это заставляет меня думать, что, возможно, на сервере чего-то не хватает. xml, но я не могу понять, что именно.

1 Ответ

2 голосов
/ 08 мая 2020

Согласно документации адаптера ресурсов MQ , атрибут queueName фактически должен быть baseQueueName. Кроме того, вам может потребоваться указать queueManager в фабрике соединений или baseQueueManagerName в свойствах jmsQueue, если значение qmgr по умолчанию для пустой строки недопустимо для вашего соединения.

...