代码之家  ›  专栏  ›  技术社区  ›  cooshal

无法配置JMS 2.0、ActiveMQ和Karaf

  •  0
  • cooshal  · 技术社区  · 7 年前

    我一直在尝试在ApacheKaraf中使用ActiveMQ设置pax jms。以下是我安装的各个版本:

    activemq-osgi: 5.15.3
    OPS4J Pax JMS * : 1.0.3
    Karaf: 4.2.0
    JMS API: 2.0.1
    

    以下是我安装的功能:

    > feature:repo-add mvn:org.ops4j.pax.jms/pax-jms-features/1.0.3/xml/features 
    > feature:install pax-jms-activemq pax-jms-config
    

    我可以看到我的配置得到了正确的选择。因此,执行命令 jms:connectionfactories 显示了我配置的连接。

    注意:我跟着 https://ops4j1.jira.com/wiki/spaces/PAXJMS/pages/331350050/Configuration ,相信ActiveMQ的步骤也会类似。

    我的配置如下所示:

    jms.url=tcp://localhost:61616
    jms.username=system
    jms.password=manager
    type=activemq
    osgi.jndi.service.name=jms/demo.consumer
    

    目前,我只是想测试是否可以从Karaf查询ActiveMQ代理。因此,我尝试了 jms:info jms/demo.consumer .但是,我一直收到以下错误信息:

    Error executing command: JMS 2.0 is not supported by ActiveMQ

    我尝试过改变版本,也尝试过新的karaf实例。但是,我到目前为止运气不好。我是否错过了一些基本步骤?

    0 回复  |  直到 7 年前
        1
  •  0
  •   Matt Pavlovich    7 年前

    pax jms activemq模块支持activemq 5。x、 命令行工具可能无法在它称为ConnectionFactory的b/c中工作。createContext()而不是。createConnection()。jmsv2。0有两个功能可供ActiveMQ 5使用。x基本上不支持共享持久订阅。

    只要获取ConnectionFactory调用的代码。createConnection()而不是。createContext()它可以与JMS API 2.0 JAR配合使用。Java代码、camel activemq、camel jms等都可以正常工作。

        2
  •  0
  •   Justin Bertram    7 年前

    错误信息是准确的。ActiveMQ 5。x不支持JMS 2.0。这不是配置问题。它根本没有实现。如果希望ActiveMQ代理支持JMS 2.0,那么应该使用 ActiveMQ Artemis .无论如何 documentation you referenced 正在使用ActiveMQ Artemis。