骆驼 AMQP - AMQConnectionFactory ClassNotFound

Camel AMQP - AMQConnectionFactory ClassNotFound

我正在使用 Camel 2.13.3 并尝试通过 AMQP 建立到远程 ActiveMQ 实例的连接。

根据the Camel AMQP docs是应该足以添加以下依赖

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-amqp</artifactId>
    <version>2.13.1</version> 
</dependency>

然后指示您应该配置 jms 组件以使用 QPID 项目提供的连接工厂。文档页面使用 org.apache.qpid.amqp_1_0.jms.impl.ConnectionFactoryImpl,其他 google 搜索结果表明可以使用 org.apache.qpid.client.AMQConnectionFactory

但是,org.apache.qpid 依赖项似乎没有添加到项目中,不出所料,当我 运行 它时,我得到一个 ClassNotFoundException

我考虑单独下载 qpid 依赖项,但他们的网站似乎表明 qpid 客户端项目已被弃用并被其他东西取代(QPID Messaging API 如果我没记错的话)

谁能给我指出正确的方向?

should be sufficient

您链接到的 Camel 文档没有说明这一点。它只是说需要这种依赖关系,并没有说明额外的依赖关系。刚刚查看了您正在使用的 jar 内部,它不包含 qpid-client 类。您也应该将该依赖项添加到您的 pom 中。对于 AMQP 0.x,您很有可能还需要 JMS 规范依赖项:

<dependency>
  <groupId>org.apache.qpid</groupId>
  <artifactId>qpid-client</artifactId>
  <version>0.32</version> <!-- replace with appropriate version -->
</dependency>
<dependency>
  <groupId>org.apache.geronimo.specs</groupId>
  <artifactId>geronimo-jms_1.1_spec</artifactId>
  <version>1.0</version>
</dependency>

如果您使用的是 AMQP 1.0,

<dependency>
  <groupId>org.apache.qpid</groupId>
  <artifactId>qpid-jms-client</artifactId>
  <version>0.3.0</version>
</dependency>