Простейший способ доступа к экспортируемому из Spring JMX-бину в Websphere 7.0 - PullRequest
0 голосов
/ 20 апреля 2011

В настоящее время я экспортирую свои бины JMX с помощью Spring, и я вполне доволен этим. При работе в другом контейнере (например, Jetty, Tomcat) я могу просто подключиться с помощью JConsole или JVisualVM и получить доступ к своим MBeans.

Я попытался подключиться к WebSphere, используя инструкции из Как включить JMX в WebSphere , но безуспешно.

Существует ли более простой способ доступа к компонентам JMX в приложении, работающем на WebSphere Application Server 7.0?

1 Ответ

1 голос
/ 20 апреля 2011

Не уверен, если вы не можете подключиться к WebSphere7 JMX, или вы можете подключиться, но не видите экспортированные MBeans. Если это последнее, я подозреваю, что вы, возможно, смотрите на неправильный экземпляр MBeanServer, поскольку технически WAS имеет более одного запуска.

В любом случае, чтобы обойти всю эту ерунду, лучше всего добавить определение JMXConnectorServer в Spring XML. Таким образом, вы точно контролируете, как должны выполняться соединения JMX, и он будет использовать стандартное удаленное взаимодействие R2 J2SE, так что вы знаете, что ваша 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>
...