是否有兼容 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.jarorg.apache.activemq.artemis.api .core 来自artemis-commons-1.4.0.jar)。这是我的 JNDI 初始上下文:Context.INITIAL_CONTEXT_FACTORY=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactoryContext.PROVIDER_URL=tcp://service01.dev.fld:61616queue.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 在低版本中没法编译?

目前Java 版本是? JDK版本是?

TortoiseSVN 1.7 能否针对 SVN 1.6 存储库正常工作?

如何将 WildFly 连接到远程 Artemis 服务器

如何请求 JWindow 临时焦点? (Java 1.7)

Eclipse使用gradle编译时,设置java home,使用固定的jdk版本进行编译