Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在WebSphere7.0上访问Spring导出的JMXbean的最简单方法_Spring_Websphere_Jmx_Websphere 7 - Fatal编程技术网

在WebSphere7.0上访问Spring导出的JMXbean的最简单方法

在WebSphere7.0上访问Spring导出的JMXbean的最简单方法,spring,websphere,jmx,websphere-7,Spring,Websphere,Jmx,Websphere 7,我目前使用Spring导出我的JMX bean,对此我非常满意。当在另一个容器(例如Jetty、Tomcat)上运行时,我可以简单地使用JConsole或JVisualVM进行连接并访问我的MBean 我尝试使用中的说明连接到WebSphere,但没有成功 在运行于WebSphere application Server 7.0上的应用程序上,是否有一种更简单的访问JMX bean的方法?不确定是否无法连接到WebSphere7 JMX,或者可以连接但看不到导出的MBean。如果是后者,我怀疑您

我目前使用Spring导出我的JMX bean,对此我非常满意。当在另一个容器(例如Jetty、Tomcat)上运行时,我可以简单地使用JConsole或JVisualVM进行连接并访问我的MBean

我尝试使用中的说明连接到WebSphere,但没有成功

在运行于WebSphere application Server 7.0上的应用程序上,是否有一种更简单的访问JMX bean的方法?

不确定是否无法连接到WebSphere7 JMX,或者可以连接但看不到导出的MBean。如果是后者,我怀疑您可能看到了错误的MBeanServer实例,因为从技术上讲,WAS有多个运行

不管是哪种方式,为了避免这些废话,最好的办法是在SpringXML中添加一个定义。这样,您就可以精确地控制JMX连接的建立方式,并且它将使用标准的J2SE RMI远程处理,因此您知道您的JConsole将很容易地连接到它

下面是一个例子:

<bean id="MBeanServer"
    class="org.helios.jmx.util.MBeanServerFactory" lazy-init="false" factory-method="createMBeanServer">
    <constructor-arg type="java.lang.String" value="DefaultDomain" />
</bean>

<bean id="MBeanServerJMXUrl"
    class="javax.management.remote.JMXServiceURL" lazy-init="false">
    <constructor-arg type="java.lang.String" value="service:jmx:rmi:///jndi/rmi://localhost:8003/jmxrmi" />
</bean>

<bean id="RMIRegistry"
    class="java.rmi.registry.LocateRegistry" 
        lazy-init="false" 
        factory-method="createRegistry">
    <constructor-arg value="8003" />
</bean>


<bean id="MBeanServerConnector"
    class="javax.management.remote.JMXConnectorServerFactory" 
        lazy-init="false" 
        init-method="start"
        factory-method="newJMXConnectorServer"
        depends-on="RMIRegistry">
    <constructor-arg ref="MBeanServerJMXUrl" />
    <constructor-arg>
        <map/>
    </constructor-arg>
    <constructor-arg ref="MBeanServer" />
</bean>


Ah,很抱歉引用org.helios.jmx.util.MBeanServerFactory。这只是对java.lang.management.ManagementFactory、getPlatformMBeanServer()的调用。在jConsole中输入的服务url应该是什么样子?+我得到了这个异常:
线程“main”中的异常:org.springframework.beans.factory.BeanCreationException:创建在类路径资源中定义了名称为“mbeanServer”的bean时出错[META-INF/hw common jmx.xml]:未找到匹配的工厂方法:工厂方法“getPlatformMBeanServer()”。请检查是否存在具有指定名称和参数的方法,并且该方法是静态的。位于org.springframework.beans.factory.support.ConstructorResolver.InstanceUsingFactoryMethod(ConstructorResolver.java:528)
这是否意味着正在运行的应用程序将启动RMI端口,如1099上的端口?