[英]JMX Spring connect to localhost without specifying the server address and port
我指的是這里
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的服務器屬性來解決此問題。
這是我的spring 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();
但這不起作用。 - 說無法連接到localhost
但如果我使用
MyInterface myInterface = context.getBean("proxyWithServer");
myInterface.myMethod();
這有效。
這里的問題是這個代碼將在多個服務器上運行,每個服務器上的jmx端口都不同。 所以我不想指定端口號。 因此我希望它的proxyWithoutServer版本能夠工作。 查看spring jmx文檔,如果我們嘗試連接到本地MBean Server,我們似乎不需要指定服務器端口。 我需要一些關於我在這里做錯的建議。
提前致謝
創建對MBeanServer的本地引用。
<context:mbean-server id="localMBeanServer"/>
然后在p:server-ref中使用localMBeanServer
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.