提问者:小点点

使用amqp协议模拟Apache ActiveMq


我们在应用程序中使用solace作为消息系统,在为侦听器编写单元测试类(使用JUNIT)时,我必须在本地启动solcae。相反,我试图模拟代理(apache ActiveMq)使用amqp协议并向侦听器发送消息。https://github.com/apache/activemq/blob/activemq-5.15.x/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/AmqpTransformerTest.java

但是当我尝试构建maven项目时,我看到了错误

包org. apache.tivemq.transport.amqp.client不存在。

我已经添加了以下依赖项,但我仍然面临同样的问题。请建议

<dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-broker</artifactId>
            <version>5.15.12</version>
            <!-- <scope>test</scope> -->
        </dependency>

        <!-- Testing Dependencies -->
        <dependency>
            <groupId>org.apache.qpid</groupId>
            <artifactId>qpid-jms-client</artifactId>
            <version>0.51.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-kahadb-store</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-jaas</artifactId>
            <version>5.15.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-broker</artifactId>
            <version>5.15.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-spring</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-http</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-mqtt</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-leveldb-store</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq.tooling</groupId>
            <artifactId>activemq-junit</artifactId>
            <version>5.15.12</version>
            <scope>test</scope>
        </dependency>

我无法解决以下编译问题。org. apache.tivemq.transport.amqp.client无法解决,因为找不到此包的依赖项,但我在maven项目中添加了上述依赖项。

import org.apache.activemq.transport.amqp.client.AmqpClient;
import org.apache.activemq.transport.amqp.client.AmqpConnection;
import org.apache.activemq.transport.amqp.client.AmqpMessage;
import org.apache.activemq.transport.amqp.client.AmqpSender;
import org.apache.activemq.transport.amqp.client.AmqpSession;

请建议。谢谢专家。


共1个答案

匿名用户

不完全清楚你的测试在做什么,但是它找不到的类是在ActiveMQ 5. x AMQP模块的测试中实现的AMQP测试客户端的类jar所以你肯定找不到它们和你在那里的依赖关系。

ActiveMQ代理中的AMQP测试客户端不适用于任何人,因为它是专门为测试代理中的AMQP堆栈而构建的。如果您从测试中删除它的用法,您应该会有更好的运气。