在servlet容器端口上运行嵌入式activemq代理

时间:2015-08-05 07:55:58

标签: java tomcat activemq message-queue

我有一个jar包装的应用程序,它在某个端口(例如8080)上启动了带有servlet的tomcat。 此外,我需要将activemq代理(客户端)添加到此应用程序,使用它嵌入相同的JVM。

我想我会在代码smt中执行此操作

BrokerService broker = new BrokerService();
broker.setBrokerName("myBroker");
broker.addConnector("tcp://localhost:40001");
broker.start();

我的问题是我必须在另一个端口上启动吗?是否有可能在Web服务器启动的同一端口上启动它?

1 个答案:

答案 0 :(得分:1)

您不能这样做,因为您的应用程序“绑定”到端口并获得它的独占所有权。从逻辑上讲,操作系统如何知道将请求转发给哪个应用程序(Tomcat / ActiveMQ)?

为了满足您的需求,您必须将另一个名为“端口多路复用器”的应用程序绑定为中介。这是一个例子:https://github.com/joushou/serve2d