是否有兼容 Java 1.7 的 Artemis JMS 客户端?
Posted
技术标签:
【中文标题】是否有兼容 Java 1.7 的 Artemis JMS 客户端?【英文标题】:Is there a Java 1.7 compatible Artemis JMS client? 【发布时间】:2019-11-12 02:26:25 【问题描述】:是否有可能获得(或构建)与 Java 1.7 兼容的 artemis-jms-client-all-2.x.0.jar
等效项?
我需要它,因为 Weblogic SOA 10.x 不支持 Java 1.8,我想将它连接到 ActiveMQ Artemis。
【问题讨论】:
【参考方案1】:ActiveMQ Artemis JMS 客户端(及其许多依赖项)使用 Java 1.8 的语言功能,因此没有与 Java 1.7 兼容的 2.x 版本。理论上可以将 1.4 或更早版本与当前 2.x 代理一起使用,但那是在“artemis-jms-client-all”jar 可用之前,因此您需要使用“artemis-jms-client” " jar 并手动包含所有客户端依赖项。
【讨论】:
感谢贾斯汀的回答。我会试试看是否值得。也感谢您简化问题(不习惯)。 嗨贾斯汀,我想我能够构建一个与所有依赖项兼容的 jar 兼容 java 1.7。但我不知道要提供什么连接工厂名称。我已经尝试了连接工厂XAConnectionFactory
,它告诉我javax.naming.NameNotFoundException: XAConnectionFactory
...曾经与artemis-jms-client-all-2.7.0.jar
一起工作。你有什么建议吗?谢谢,埃里克。
你构建的客户端是什么版本的?您为您的InitialContext
提供了哪些属性以进行 JNDI 查找?
对于 jar,我取了 artemis-jms-client-1.4.0.jar
,并添加了缺失的部分(javax 选自 artemis-jms-client-all-2.7.0.jar
和 org.apache.activemq.artemis.api .core 来自artemis-commons-1.4.0.jar
)。这是我的 JNDI 初始上下文:Context.INITIAL_CONTEXT_FACTORY=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory
、Context.PROVIDER_URL=tcp://service01.dev.fld:61616
、queue.testReqQueue=testReqQueue
。
找不到XAConnectionFactory
,因为1.4.0客户端默认没有定义。这种便利是通过issues.apache.org/jira/browse/ARTEMIS-1164 添加的。您需要使用类似connectionFactory.XAConnectionFactory=tcp://service01.dev.fld:61616?type=XA_CF
的内容自己定义它。以上是关于是否有兼容 Java 1.7 的 Artemis JMS 客户端?的主要内容,如果未能解决你的问题,请参考以下文章
java jdk 1.8如何向下兼容,有个时候写高版本的时候maven 在低版本中没法编译?