178.3.5. JMX 服务 URL

默认 JMX 服务 URL 具有格式:

service:jmx:rmi:///jndi/rmi://localhost:<registryPort>/<serviceUrlPath>

registryPort 是 RMI registry 端口,默认值为 1099

您可以通过系统属性设置 RMI registry 端口。

-Dorg.apache.camel.jmx.rmiConnector.registryPort=<port number>

或者,通过在 Spring 配置中添加 camelContext 元素中的 jmxAgent 元素:

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
  <jmxAgent id="agent" createConnector="true" registryPort="port number"/>
    ...
</camelContext>

serviceUrlPath 是 URL 中的路径名称,默认值为 /jmxrmi/camel

您可以通过系统属性设置服务 URL 路径。

-Dorg.apache.camel.jmx.serviceUrlPath=<path>
提示

在 Java 中设置 ManagementAgent 设置

Camel 2.4 上,您还可以在 ManagementAgent 中设置各种选项:

context.getManagementStrategy().getManagementAgent().setServiceUrlPath("/foo/bar");
context.getManagementStrategy().getManagementAgent().setRegistryPort(2113);
context.getManagementStrategy().getManagementAgent().setCreateConnector(true);

或者,通过在 Spring 配置中添加 camelContext 元素中的 jmxAgent 元素:

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
  <jmxAgent id="agent" createConnector="true" serviceUrlPath="path"/>
    ...
</camelContext>

默认情况下,RMI 服务器对象侦听动态生成的端口,这可能是通过防火墙建立的连接时出现问题。在这种情况下,可以使用系统属性明确设置 RMI 连接端口。

-Dorg.apache.camel.jmx.rmiConnector.connectorPort=<port number>

或者,通过在 Spring 配置中添加 camelContext 元素中的 jmxAgent 元素:

<camelContext id="camel" xmlns="http://activemq.apache.org/camel/schema/spring">
  <jmxAgent id="agent" createConnector="true" connectorPort="port number"/>
    ...
</camelContext>

当设置了连接器端口选项时,JMX 服务 URL 将变为:

service:jmx:rmi://localhost:<connectorPort>/jndi/rmi://localhost:<registryPort>/<serviceUrlPath>