java - 从 WebSphere 8 运行 Java 8 MQ 应用程序时出错
问题描述
尝试从 WebSphere 8 运行 Java 8 MQ 应用程序时出现以下错误:
java.lang.IllegalStateException: Cannot convert value of type 'com.ibm.ejs.jms.JMSQueueConnectionFactoryHandle' to required type 'javax.jms.ConnectionFactory"
经过一些研究,我在这里看到了一些建议,可以通过删除所有javax.jms
jar 来解决上述错误。我的 war 文件中有 jms-api-2.0 和 geronimo-jms_1.1_spec jar。我删除了它们,之后我看到以下错误:
java.lang.NoClassDefFoundError: javax.jms.JMSRuntimeException
这将需要 JMS jar。请指教。
我的战争中包装的罐子:
spring-boot-starter-web:jar:1.5.17.RELEASE
spring-boot-starter:jar:1.5.17.RELEASE
spring-boot-starter-log4j2:jar:1.5.17.RELEASE
spring-boot-starter-activemq:jar:1.5.17.RELEASE
commons-lang3:jar:3.5
cxf-rt-frontend-jaxws:jar:3.1.11
cxf-rt-transports-http:jar:3.1.11
cxf-rt-ws-security:jar:3.1.11
wss4j-ws-security-common:jar:2.2.1
groovy:jar:2.4.11
gson:jar:2.8.5
spring-boot-configuration-processor:jar:1.5.17.RELEASE
com.ibm.mq:jar:8.0.0.5
com.ibm.mq.headers:jar:8.0.0.5
com.ibm.mq.pcf:jar:8.0.0.5
com.ibm.mqjms:jar:8.0.0.5
com.ibm.mq.connector:jar:7.5.0.5
dhbcore:jar:7.5.0.5
mqcontext:jar:2.3
com.ibm.mq.commonservices:jar:8.0.0.5
jaxb-impl:jar:2.2.11
jaxb-core:jar:2.2.11
spring-oxm:jar:4.3.20.RELEASE
删除所有 com.ibm jar 并添加 com.ibm.mq.allclient 和 jms jar 后,我的 war 文件中的新 jar 列表:
spring-boot-starter-web:jar:1.5.17.RELEASE
spring-boot-starter:jar:1.5.17.RELEASE
spring-boot-starter-log4j2:jar:1.5.17.RELEASE
spring-boot-starter-activemq:jar:1.5.17.RELEASE
commons-lang3:jar:3.5
cxf-rt-frontend-jaxws:jar:3.1.11
cxf-rt-transports-http:jar:3.1.11
cxf-rt-ws-security:jar:3.1.11
wss4j-ws-security-common:jar:2.2.1
groovy:jar:2.4.11
gson:jar:2.8.5
spring-boot-configuration-processor:jar:1.5.17.RELEASE
jaxb-impl:jar:2.2.11
jaxb-core:jar:2.2.11
spring-oxm:jar:4.3.20.RELEASE
javax.jms-api:jar:2.0
com.ibm.mq.allclient:jar:9.1.1.0
解决方案
WAS 8.5.5.x 不支持JMS 2.0:
WebSphere® Application Server 支持使用 JMS 1.1 域独立接口(在 JMS 规范中称为“通用接口”)和 JMS 1.0.2 域特定接口的应用程序。
您应该使用 WAS 内置的 IBM MQ资源适配器,而不是随 WAR 一起提供 MQ 库。
在 WAS 控制台中配置队列连接工厂并遵循WAS/Spring指南来引用此连接工厂。
推荐阅读
- scala - Scala 隐式 隐式
- python - Python Spark 键的元组值平均值
- sql - 从 JSON 数组中提取值以用于 where 子句 - SQL Server
- python - PyQt5 MYSQL 驱动程序未加载 windows
- java - 在测试中使用 HibernateDatastore 时,是什么导致域的静态映射中的字符串“默认值”导致错误?
- python - 以特定顺序迭代列表项
- python - Cython 与未知大小的 char 数组的 python 和 c 库之间的接口
- c# - 如何通过在另一个窗口中单击的按钮更改标签的内容?
- azure - Azure API 管理 - 如何访问产品信息
- reactjs - (React-Redux)每当我试图从我的购物车中删除一个项目时抛出“dispatch is not a function”