【发布时间】:2014-05-07 13:40:23
【问题描述】:
将消息写入 MQ 时出现以下错误。我在有一个 EJB 的 WAS 8.5 上部署了一只耳朵。我已验证 SyncOutboundMDB 是 MessageListener 的子节点。
有人知道这个问题吗?
LocalExceptio E CNTR0020E: EJB threw an unexpected (non-declared) exception during invocation of method "onMessage" on bean "BeanId(sample-ear#sampleejb-1.0-SNAPSHOT.jar#SyncOutboundMDB, null)". Exception data: java.lang.ClassCastException: com.test.sync.mdb.SyncOutboundMDB incompatible with javax.jms.MessageListener
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:94)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:131)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:581)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1815)
[5/7/14 7:51:08:768 CDT] 00000097 ServerSession W WMSG0031E: Exception processing JMS Message for MDB SyncOutboundMDB, JMSDestination OutboundQueue : com.ibm.ejs.container.UnknownLocalException: nested exception is: java.lang.ClassCastException: com.test.sync.mdb.SyncOutboundMDB incompatible with javax.jms.MessageListener
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:94)
at com.ibm.ejs.container.MDBWrapper.onMessage(MDBWrapper.java:131)
at com.ibm.ejs.jms.listener.ServerSession.run(ServerSession.java:581)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1815)
Caused by: java.lang.ClassCastException: com.test.sync.mdb.SyncOutboundMDB incompatible with javax.jms.MessageListener
... 4 more
【问题讨论】:
-
您使用的是 PARENT_LAST 吗?您的应用程序是否包含自己的 MessageListener API 副本?
-
是的。你说的对。我的一个 jar 将 jms jar 拉到我的程序集中,这导致了问题。谢谢。
-
很高兴听到这个消息。如果您想接受,我已经添加了一个答案(单击答案左侧的复选标记)。
标签: ejb websphere message-listener