我有一个jar包装的应用程序,它在某个端口(例如8080)上启动了带有servlet的tomcat。 此外,我需要将activemq代理(客户端)添加到此应用程序,使用它嵌入相同的JVM。
我想我会在代码smt中执行此操作
BrokerService broker = new BrokerService();
broker.setBrokerName("myBroker");
broker.addConnector("tcp://localhost:40001");
broker.start();
我的问题是我必须在另一个端口上启动吗?是否有可能在Web服务器启动的同一端口上启动它?
答案 0 :(得分:1)
您不能这样做,因为您的应用程序“绑定”到端口并获得它的独占所有权。从逻辑上讲,操作系统如何知道将请求转发给哪个应用程序(Tomcat / ActiveMQ)?
为了满足您的需求,您必须将另一个名为“端口多路复用器”的应用程序绑定为中介。这是一个例子:https://github.com/joushou/serve2d