【发布时间】:2019-05-08 07:23:06
【问题描述】:
我正在尝试让 MDB 侦听器在 Websphere Liberty v16.0.0.4 中工作,但在我的 messages.log 中没有收到一条消息,表明需要使用 MDB 侦听器的应用程序已绑定到激活规格。
我有以下信息:
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,并放入名为prpc_j2ee14_ws.ear 的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 Listener 导入到 Websphere Application Server 中的应用程序中,我知道我需要将 MDB Listener.jar 文件绑定到激活规范,所以在这种情况下,将 CnvMQIbanServices.jar 绑定到 eis/dbd_pega_cnvbanQAS,我'我错过了这个,但我需要如何将它放在 server.xml 中,我可能还遗漏了其他东西吗?
【问题讨论】:
-
您应该仔细检查您的应用程序和 mdb 名称。活动规范 id 应采用
applicationName/moduleName/beanName格式,其中 applicatonName 是耳朵的名称、moduleName、带有 MDB 的模块的名称以及实际 MDB 的 bean 名称名称。如果你只是部署 jar,你可以省略 applicationName。应用程序和模块名称没有扩展名。因此,在您的情况下,它可能应该类似于id="CnvMQIbanServices/CnvMQIbanServices_J2CMessageEndpoint"。附加来自 startup 的 message.log 中的任何错误。 -
如果我检查它在 Websphere Application Server 中的状态并转到:“企业应用程序 > prpc_j2ee14_ws > 管理消息端点”我看到以下内容:prpc_j2ee14_ws#CnvMQIbanServices.jar#CnvMQIbanServices_J2CMessageEndpoint (eis/dbd_pega_cnvbanQAS ) 所以我需要编辑这一行:
成 ?我已经尝试了这两种方法,但是对于这两种方法,我都没有在日志中收到 MDB 已绑定到激活规范的消息。
标签: websphere websphere-liberty mq message-driven-bean