我有一个 jar 打包的应用程序,它在某个端口(例如 8080)上启动带有 servlet 的 tomcat。 我还需要向此应用程序添加 activemq 代理(客户端),使用它嵌入相同的 JVM。
我想我会用 smt 之类的代码来做
BrokerService broker = new BrokerService();
broker.setBrokerName("myBroker");
broker.addConnector("tcp://localhost:40001");
broker.start();
我的问题是我必须在另一个端口上启动它吗?是否有可能在网络服务器启动的同一端口上启动它?
最佳答案
您不能这样做,因为您的应用程序“绑定(bind)”到该端口并获得它的独占所有权。纯逻辑而言,操作系统如何才能知道将请求转发到哪个应用程序(Tomcat/ActiveMQ)?
为了执行您需要的操作,您必须将另一个名为“端口多路复用器”的应用绑定(bind)为中介。这是一个例子:https://github.com/joushou/serve2d
关于java - 在 servlet 容器端口上运行嵌入式 activemq 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31826574/