【问题标题】:ActiveMQ embedded broker hanging when sending a Post request发送 Post 请求时 ActiveMQ 嵌入式代理挂起
【发布时间】:2013-12-31 04:53:40
【问题描述】:

我按照activemq站点的例子启动了一个嵌入式broker:

BrokerService broker = new BrokerService();
broker.addConnector("tcp://localhost:8161");
broker.start();

然后我执行一些帖子到以下 URL 以使用 ActiveMQ 的 REST 功能:

"http://localhost:8161/api/message/EventQueue?type=queue"

当我使用独立代理发送帖子时,一切正常,但当我使用嵌入式代理时,它会挂起进程。

我正在使用活动 mq 版本 5.8.0

我错过了什么?

谢谢

【问题讨论】:

    标签: rest activemq broker


    【解决方案1】:

    您正在添加一个使用 openwire 协议的 TCP 连接器,但您正在发送 post 请求,就好像它是一个 HTTP 连接器一样。您需要添加一个基于 HTTP 传输的连接器并使用该连接器来发布您的帖子。

    当然,您必须确保在 http 的类路径上拥有类,该类位于 activemq-http 包中。

    【讨论】:

    • 我已经尝试过使用 broker.addConnector("http://localhost:8161");但它给了我以下异常:引起:java.lang.ClassNotFoundException:org.eclipse.jetty.server.HandlerContainer。我已经尝试在 Maven 中添加包,但仍然出现异常。你知道我怎样才能加入课程吗?
    • 你需要带入所有正确的jar,http不在activemq broker中,它在activemq-http中
    • 我以为所有的activemq库都包含在activemq-all中
    • 我认为它在最新版本中被意外遗漏了,因为模块被重命名了。试试看,不会疼的。
    • 感谢它现在运行。但是,当我尝试使用 Json 字符串向嵌入式代理发送帖子时,它给了我以下错误:com.thoughtworks.xstream.io.StreamException: : 在开始标记之前只允许空白内容而不是 s(位置:START_DOCUMENT 看到 s ...@1:1)。我认为代理缺少一些配置来接受 Json 消息。你知道我在哪里可以找到这方面的信息吗?我试图查看 activemq 站点,但找不到相关内容。谢谢!
    猜你喜欢
    • 2015-03-28
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    • 2013-01-06
    • 1970-01-01
    • 2012-01-08
    • 2018-11-22
    相关资源
    最近更新 更多