【发布时间】:2016-03-04 17:21:28
【问题描述】:
我在 Jboss EAP 6.1 中使用 WebSphere MQ 接收消息时遇到问题。
我按照 redhat 指南 Deploy the WebSphere MQ Resource Adapter 在 Jboss EAP 中配置了 WebSphere MQ,但当时服务器收到一条消息,我收到了
ERROR [org.jboss.as.ejb3.invocation] (default-threads - 1) JBAS014134: EJB Invocation failed on component QueueClass_MDB_IDM_REQ for method public abstract void javax.jms.MessageListener.onMessage(javax.jms.Message): javax.ejb.EJBException: JBAS014580: Unexpected Error
at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInNoTx(CMTTxInterceptor.java:188) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInNoTx(CMTTxInterceptor.java:237) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
at org.jboss.as.ejb3.tx.CMTTxInterceptor.notSupported(CMTTxInterceptor.java:299) [jboss-as-ejb3-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
...
Caused by: java.lang.ClassNotFoundException: com.ibm.mq.MQException from [Module "deployment.abc-ear.ear.cnt-abc-integration.jar:main" from Service Module Loader]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:196) [jboss-modules.jar:1.2.2.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444) [jboss-modules.jar:1.2.2.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432) [jboss-modules.jar:1.2.2.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374) [jboss-modules.jar:1.2.2.Final-redhat-1]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119) [jboss-modules.jar:1.2.2.Final-redhat-1]
... 68 more
我的班级似乎找不到 wmq 班级,我将 wmq.jms.rar 复制到了独立/部署文件夹并正确配置了资源适配器:
<resource-adapter>
<archive>
wmq.jmsra.rar
</archive>
<transaction-support>NoTransaction</transaction-support>
<connection-definitions>
<connection-definition class-name="com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl"
jndi-name="java:jboss/MQ.CONNECTIONFACTORY.NAME"
pool-name="MQ.CONNECTIONFACTORY.NAME">
<config-property name="channel">
MQ.CHANNEL.NAME
</config-property>
<config-property name="transportType">
MQ.CLIENT
</config-property>
<config-property name="queueManager">
MQ.QUEUE.MANAGER
</config-property>
</connection-definition>
</connection-definitions>
<admin-objects>
<admin-object
class-name="com.ibm.mq.connector.outbound.MQQueueProxy"
jndi-name="java:jboss/MQ.QUEUE.NAME"
pool-name="MQ.QUEUE.NAME">
<config-property name="baseQueueName">
MQ.QUEUE.NAME
</config-property>
</admin-object>
</admin-objects>
</resource-adapter>
版本
- Jboss EAP 6.1
- WebSphere MQ 7.1.0
【问题讨论】:
标签: java jboss jms ibm-mq classnotfoundexception