You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改ActiveMQ Classic Broker端点的上下文路径

修改ActiveMQ Broker的WebSocket访问上下文路径

你可以通过调整ActiveMQ内置Jetty服务器的Servlet上下文配置来实现,无需反向代理,具体步骤如下:

1. 定位配置文件

找到ActiveMQ安装目录下的conf/jetty.xml(部分版本可能在conf/activemq.xml的<jetty>节点内)。

2. 修改WebSocket Servlet的上下文路径

场景1:使用独立jetty.xml配置

找到WebSocket相关的ServletContextHandler配置,将contextPath属性值改为你需要的路径(比如/broker1),示例配置如下:

<bean id="webSocketHandler" class="org.eclipse.jetty.servlet.ServletContextHandler">
  <!-- 修改此处的contextPath为自定义路径 -->
  <property name="contextPath" value="/broker1"/>
  <property name="servletHandler">
    <bean class="org.eclipse.jetty.servlet.ServletHandler">
      <property name="servlets">
        <list>
          <ref bean="webSocketServlet"/>
        </list>
      </property>
      <property name="mappings">
        <list>
          <entry key="/*" value-ref="webSocketServlet"/>
        </list>
      </property>
    </bean>
  </property>
</bean>

场景2:在activemq.xml中配置

如果你的WebSocket配置在activemq.xml的<jetty>节点内,直接添加或修改servletContextHandler的contextPath:

<jetty xmlns="http://activemq.apache.org/schema/core">
  <servletContextHandler contextPath="/broker1">
    <servlet>
      <servlet-name>WebSocketServlet</servlet-name>
      <servlet-class>org.apache.activemq.web.WebSocketServlet</servlet-class>
      <init-param>
        <param-name>brokerURL</param-name>
        <param-value>vm://localhost</param-value>
      </init-param>
    </servlet>
    <servlet-mapping>
      <servlet-name>WebSocketServlet</servlet-name>
      <url-pattern>/*</url-pattern>
    </servlet-mapping>
  </servletContextHandler>
</jetty>

3. 重启ActiveMQ

修改完成后重启ActiveMQ服务,即可通过ws://localhost:61614/broker1访问Broker的WebSocket端点。

注意:不同ActiveMQ版本的配置细节可能略有差异,若使用STOMP over WebSocket,需对应修改org.apache.activemq.web.StompSocketServlet的相关配置。

内容的提问来源于stack exchange,提问作者ibory0205

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 08:40:11