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

标签 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();

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

最佳答案

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

为了执行您需要的操作,您必须将另一个名为“端口多路复用器”的应用绑定(bind)为中介。这是一个例子:https://github.com/joushou/serve2d

关于java - 在 servlet 容器端口上运行嵌入式 activemq 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31826574/

相关文章:

Java强制转换方法

java - 如何在 Apache Tomcat 8.0.27 中使用 @WebServlet 注解

java - JMS异常: Queue does not exist

java - 在同一台机器上设置多个 ActiveMQ 代理时出错

java - 无法选择要在 ImageView 中显示的图像

java - cucumber 测试被忽略 - TestNG

java - XMLGregorianCalendar 2010-12-21T08 :55:17E-7+01:00 E-7. E-7 是什么意思

java - 如何让 Tomcat 运行在 443 而不是默认端口 8080?

java - 如果我将tomcat中的java版本更改为最新版本会发生什么

java - 无法找到 activemq.xml 的 Spring NamespaceHandler