1

我正在尝试使用 JSR-160 类访问启用了安全性的 WebSphere 7 AppServer。如果我定义指向各种 WebSphere lib 目录的 java.ext.dirs 系统属性,我可以获得与以下内容的连接:

Hashtable env = new Hashtable();
env.put("java.naming.factory.initial", "com.ibm.websphere.naming.WsnInitialContextFactory");
env.put("java.naming.provider.url", "corbaloc:iiop:myhost:2809/WsnAdminNameService");
env.put("jmx.remote.credentials", new String[] { "admin", "password" });
JMXConnector connector = JMXConnectorFactory.connect(new JMXServiceURL("service:jmx:rmi:///jndi/JMXConnector"), env);

但是,一旦我访问statsMBean 上的属性之类的东西,就会收到以下错误:

javax.management.JMRuntimeException:
        >> SERVER (id=4773e3aa, host=myhost) TRACE START:
        >>    javax.management.JMRuntimeException: ADMN0022E: Access is denied for the getStats operation on J2CResourceAdapter MBean because of insufficient or empty credentials.

在过去的两天里,我用谷歌搜索了我能想象到的各种解决方案,但没有任何效果。

实际上是否可以通过 JSR-160 在安全的 WebSphere AppServer 中查询 MBean 属性?

4

1 回答 1

1

使用 JSR-160 连接到不安全的 WebSphere 实例非常简单。正如您所注意到的,当连接到安全实例时,事情会变得更加复杂。您需要在类路径中有正确的库,还需要设置一些配置文件(sas.client.propsssl.client.props)。就个人而言,我可以在我的计算机上进行配置,但是当一位同事要求我在他的计算机上进行设置时,我们无法使其正常工作。

如果您想避免这些麻烦,并且您的唯一要求是使用标准 JMX API(但您不关心底层协议),那么您可以使用以下文档中描述的方法:

http://code.google.com/p/xm4was/wiki/JmxClientConnector

于 2012-10-17T08:41:52.040 回答