Websphere Liberty Как заставить работать MDB Listener? - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь заставить работать MDB Listener в Websphere Liberty v16.0.0.4, но в моем messages.log не появляется сообщение о том, что приложение, которому нужно использовать MDB Listener, связано с активацией спецификация.

У меня есть следующая информация:

QueueManager: TEST  
Hostname: localhost  
Default ServerConnectionChannel: BAN.TEST.T1   
Portnumber: 5704

Queue Connection Factory:  
JndiName: jms/dbd_pega_CNVBANQCF  
Type TCF/QCF/CF: QCF  
ServerConnectionChannel: BAN.TEST.T1  

Queue 1:  
JndiName: jms/dbd_pega_CNVBAN_ReqQ  
queueName: SRV00026.201206.BAN  

Queue 2:  
JndiName: jms/dbd_pega_CNVBAN_RplQ  
queueName: BAN.RPL.BAN   

Activation Specification:  
JNDI Activation Specification: eis/dbd_pega_cnvbanQAS  
Name Activation Specification: dbd_pega_cnvbanQAS  
The JNDI name of the Destination Queue: jms/dbd_pega_CNVBAN_ReqQ

Слушатель MDB называется CnvMQIbanServices.jar и помещается в файл ear, который называется prpc_j2ee14_ws.ear.

А это мой server.xml:

<xml version="1.0" encoding="UTF-8">
<server description="server">
<featureManager>
<feature>webProfile-7.0</feature>
<feature>localConnector-1.0</feature>
<feature>jdbc-4.1</feature>
<feature>ssl-1.0</feature>
<feature>servlet-3.1</feature>
<feature>ejb-3.2</feature>
<feature>ejbLite-3.2</feature>
<feature>ejbRemote-3.2</feature>
<feature>jndi-1.0</feature>
<feature>jms-2.0</feature>
<feature>jaxws-2.2</feature>
<feature>jaxb-2.2</feature>
<feature>restConnector-2.0</feature>
<feature>wmqJmsClient-2.0</feature>
<feature>jmsMdb-3.2</feature>
</featureManager>
<applicationManager autoExpand="true"/>
<jmsQueueConnectionFactory jndiName="jms/dbd_pega_CNVBANQCF" connectionManagerRef="ConMgr6">
<properties.wmqJms
transportType="CLIENT"
hostName="localhost"
port="5704"
channel="BAN.TEST.T1"
queueManager="TEST"/>
</jmsQueueConnectionFactory>
<connectionManager id="ConMgr6" maxPoolSize="2"/>
<jmsQueue id="jms/dbd_pega_CNVBAN_ReqQ" jndiName="jms/dbd_pega_CNVBAN_ReqQ">
<properties.wmqJms
baseQueueName="SRV00026.201206.BAN"
baseQueueManagerName="TEST"/>
</jmsQueue>
<jmsQueue id="jms/dbd_pega_CNVBAN_RplQ" jndiName="jms/dbd_pega_CNVBAN_RplQ">
<properties.wmqJms
baseQueueName="BAN.RPL.BAN"
baseQueueManagerName="TEST"/>
</jmsQueue>
<jmsActivationSpec id="prpc_j2ee14_ws/CnvMQIbanServices.jar/CnvMQIbanServices_J2CMessageEndpoint">
<properties.wmqJms
transportType="CLIENT"
destinationRef="jms/dbd_pega_CNVBAN_ReqQ"
destinationType="javax.jms.Queue"
hostName="localhost"
port="5704"
channel="BAN.TEST.T1"
queueManager="TEST"/>
</jmsActivationSpec>
</server>

Если я импортирую прослушиватель MDB в приложение в Websphere Application Server, я знаю, что мне нужно привязать файл MDB Listener.jar к спецификации активации, поэтому в этом случае в привязанном CnvMQIbanServices.jar к eis / dbd_pega_cnvbanQAS, я Мне не хватает этого, но как мне нужно поместить это в server.xml, и, может быть, я что-то упускаю?

1 Ответ

0 голосов
/ 08 мая 2019

Чтобы определить, используете ли вы правильное значение для идентификатора jmsActivationSpec, посмотрите в файле messages.log после запуска вашего сервера предупреждение, например следующее:

com.ibm.ws.ejbcontainer.mdb.internal.MDBRuntimeImpl          W CNTR4015W: The message endpoint for the {MDB_NAME} message-driven bean cannot be activated because the {ACTIVATION_SPEC_NAME} activation specification is not available. The message endpoint will not receive messages until the activation specification becomes available.

Используйте значениекоторый вы видите для {ACTIVATION_SPEC_NAME} в качестве значения идентификатора jmsActivationSpec.

...