我正在尝试配置 TomEE(带有 Java EE 的 Tomcat)以使用 AMQP 有线协议连接到外部代理(Azure 服务总线)。看起来默认情况下 JMS 提供程序是 ActiveMQ。根据文档,ActiveMQ 确实支持 AMQP 协议。我的目标是使用 ActiveMQ 作为 TomEE 提供的 JMS 提供程序。但是,当我部署我的基本 ear 文件时,出现以下错误:
03-Jun-2019 16:43:19.629 WARNING [http-nio-8080-exec-1] org.apache.geronimo.transaction.manager.TransactionImpl.enlistResource Unable to enlist XAResource org.apache.geronimo.transaction.manager.WrapperNamedXAResource@117d2011, errorCode: -7
javax.transaction.xa.XAException: Disposed due to prior exception
at org.apache.activemq.TransactionContext.toXAException(TransactionContext.java:803)
at org.apache.activemq.TransactionContext.setXid(TransactionContext.java:729)
at org.apache.activemq.TransactionContext.start(TransactionContext.java:379)
at org.apache.activemq.ra.LocalAndXATransaction.start(LocalAndXATransaction.java:151)
at org.apache.geronimo.transaction.manager.WrapperNamedXAResource.start(WrapperNamedXAResource.java:111)
at org.apache.geronimo.transaction.manager.TransactionImpl.enlistResource(TransactionImpl.java:209)
at org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.getConnection(TransactionEnlistingInterceptor.java:60)
at org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.getConnection(TransactionCachingInterceptor.java:101)
at org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.getConnection(ConnectionHandleInterceptor.java:43)
[....]
有没有人将 ActiveMQ 与 AMQP 一起使用?或者为了奖励积分,有人让它与 Azure 服务总线一起工作吗?
我确实从 github 尝试了 Azure JMS 快速启动:(https://github.com/Azure/azure-service-bus/tree/master/samples/Java/qpid-jms-client/JmsQueueQuickstart)并且它正在工作,所以我确信服务总线已启动并正在运行。但是,我无法在 TomEE 中部署 JMS 应用程序。任何帮助将不胜感激。
更新:我正在使用 Justin Bertram 建议的 AMPQ 资源适配器:https ://github.com/amqphub/amqp-10-resource-adapter
浮云间
相关分类