我指的是这里
http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/jmx.html#jmx-proxy
我正在尝试连接到 localhost MBeanServer 并使用 Spring Proxy 执行一些操作。问题只是指定了 ObjectName 和 ProxyInterface,我无法连接到 localhost。我可以通过指定 MBeanProxyFactoryBean 的服务器属性来解决这个问题。
这里是我的春天context.xml
bean id="proxyWithoutServer" class="org.springframework.jmx.access.MBeanProxyFactoryBean"
p:objectName="com.xxx.yyy"
p:proxyInterface="com.MyInterface"
bean id="proxyWithServer" class="org.springframework.jmx.access.MBeanProxyFactoryBean"
p:objectName="com.xxx.yyy"
p:proxyInterface="com.MyInterface"
p:server-ref="clientConnector"
<bean id="clientConnector" class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean"
p:serviceUrl="service:jmx:rmi://localhost/jndi/rmi://localhost:8001/jmxrmi" />
在 Java 代码中,我只是做
MyInterface myInterface = context.getBean("proxyWithoutServer");
myInterface.myMethod();
但这不起作用。- 说无法连接到本地主机
但是如果我使用
MyInterface myInterface = context.getBean("proxyWithServer");
myInterface.myMethod();
这行得通。
这里的问题是该代码将在多个服务器上运行,并且每个服务器中的 jmx 端口会不同。所以我不想指定端口号。因此,我希望它的 proxyWithoutServer 版本能够工作。查看 spring jmx 文档,如果我们尝试连接到本地 MBean 服务器,似乎不需要指定服务器端口。需要一些关于我在这里做错了什么的建议。
提前致谢