Я успешно настроил JMS-клиент Apache Qpid (0.41.0) в Open Liberty для отправки сообщений в очередь служебной шины Azure.
Мой файл server.xml выглядит следующим образом:
<jndiObjectFactory id="servicebusfactory" libraryRef="qpidlibsid"
className="org.apache.qpid.jms.jndi.JNDIReferenceFactory"
objectClassName="org.apache.qpid.jms.JmsConnectionFactory">
</jndiObjectFactory>
<jndiReferenceEntry id="qpidconnectionfactory"
jndiName="jms/ServiceBus"
factoryRef="servicebusfactory">
<properties remoteURI="amqps://xxx.servicebus.windows.net?amqp.idleTimeout=120000&amqp.traceFrames=true&;jms.username=xxxx&jms.password=xxx"/>
</jndiReferenceEntry>
<jndiObjectFactory id="queuefactory" libraryRef="qpidlibsid"
className="org.apache.qpid.jms.jndi.JNDIReferenceFactory"
objectClassName="org.apache.qpid.jms.JmsQueue">
</jndiObjectFactory>
<jndiReferenceEntry id="myqueue"
jndiName="jms/myqueue"
factoryRef="queuefactory">
<properties address="myqueue" />
</jndiReferenceEntry>
Используя приведенную выше конфигурацию сервера, я могу без проблем отправлять сообщения в очередь служебной шины (используя производителя сообщений JMS).
Проблема заключается в получении сообщений с использованием объекта, управляемого сообщениями.Я пробовал эту конфигурацию:
@MessageDriven(name = "processorMDB", activationConfig = {
@ActivationConfigProperty(propertyName = "destinationLookup", propertyValue = "jms/myqueue"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
@ActivationConfigProperty(propertyName = "connectionFactoryLookup", propertyValue = "jms/ServiceBus"),
})
Я получаю предупреждение при запуске Open Liberty:
[ПРЕДУПРЕЖДЕНИЕ] CNTR4016W: Конечная точка сообщения для bean-объекта, управляемого сообщениями CPUMDB, не может бытьактивирован, потому что пункт назначения jms / myqueue недоступен.Конечная точка сообщения не будет получать сообщения, пока адресат не станет доступным.
Мне нужна какая-то спецификация активации, которую я предполагаю, но я не могу заставить ее работать правильно.
Помощь или объяснениео том, как использовать спецификацию активации в Open Liberty, приветствуется!