2

我拼命尝试通过 http 使用 JMS 客户端连接到我的本地 ActiveMQ 代理。

可以通过我的动态 IP 地址访问 ActiveMQ Web 控制台。

我认为 xml 配置中的传输连接器应该是正确的吗?

 <transportConnectors>
        <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->
    <transportConnector name="http1" uri="http://localhost:8080"/>
 </transportConnectors>

虽然通过“http://localhost:8080”连接是有效的。

但是如果我使用我的网络 IP 连接到我的路由器并通过(端口正确)转发到我的电脑,则连接不起作用。

 public static String curIPurl = "http://{currentIP:port}";
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(curIPurl);
        TopicConnection connection = connectionFactory.createTopicConnection();
        connection.start();

如果我调试 jvm 卡在 createTopicConnection 方法中,并且在一段时间后跳过其余代码并且 main 方法完成而没有任何消息异常或其他任何内容。

任何猜测我做错了什么?

谢谢

4

1 回答 1

3

改变

<transportConnector name="http1" uri="http://localhost:8080"/>

<transportConnector name="http1" uri="http://0.0.0.0:8080"/>

我没有使用 http 传输 - 仅使用 tcp 传输,但这就是我希望远程 JMS 客户端能够连接时指定地址的方式。当您绑定到本地主机时,您只能从本地主机连接。当您绑定到 0.0.0.0 时,您仍然可以从 localhost 进行连接,但您也可以从任何远程地址进行连接。

于 2012-11-16T01:41:35.523 回答