Java 未识别运输方案:[amqp]

Java 未识别运输方案:[amqp],java,activemq,amqp,Java,Activemq,Amqp,我正在尝试将AMQP与ActiveMQ一起使用,并出现以下错误 Transport scheme NOT recognized: [amqp] 这是我的密码 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory( "amqp://localhost:61616"); Connection connection = null; try { connection = connectionFa

我正在尝试将AMQP与ActiveMQ一起使用,并出现以下错误

Transport scheme NOT recognized: [amqp]
这是我的密码

ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
        "amqp://localhost:61616");

Connection connection = null;
try {
    connection = connectionFactory.createConnection();
    connection.start();

    Session session = connection.createSession(false,
            Session.AUTO_ACKNOWLEDGE);

    Queue queue = session.createQueue("somequeue");

    MessageProducer producer = session.createProducer(queue);

    // We will send a small text message saying 'Hello'
    TextMessage message = session.createTextMessage();
    message.setText("Publishing : New Message ");
    producer.send(message);

    connection.close();
} catch (Exception e) {

}

请注意,ActiveMQ中的AMQP仅在服务器中实现,而不是在JMS客户端中实现。JMS客户机实际上实现了“默认”OpenWire协议(以及JVM内部传输)


您应该使用其他一些客户端库来使用AMQP与ActiveMQ通信,例如。

谢谢!但是你能告诉我怎么用吗?我尝试了此操作,但仍然出现相同的错误ConnectionFactory ConnectionFactory=new AMQConnectionFactory(“amqp://guest:guest@客户ID/测试?brokerlisttcp://localhost:5672'");查看ActiveMQ中继中AMQP的单元测试:它使用qpid客户端libs进行此设置。感谢您提供的工作代码。一项澄清。我看这里没有提到任何协议,也就是说,我在这里的任何地方都没有amqp://协议。我看到ConnectionFactoryImpl和QueueImpl来自org.apache.qpid.amqp_1_0.jms.impl。那么这是否意味着他们将仅在ampq连接上创建???AMQP是一种与OpenWire类似的通信协议。QPID客户端使用AMQP,ActiveMQ客户端使用OpenWire。无需指定要使用的协议。在ActiveMQ中,您通常指定tcp:。。当您实际上指的是“OpenWire”,但这是隐式的。代码在本地工作。但是当我在不同的机器中移动发布者和接收者时!ActiveMQ正在引发MessageNotReadableException