JSR-160访问安全的WebSphere AppServer

JSR-160访问安全的WebSphere AppServer,websphere,jmx,jsr160,Websphere,Jmx,Jsr160,我正在尝试使用JSR-160类访问启用了安全性的WebSphere7AppServer。如果我定义指向各种WebSphere lib目录的java.ext.dirs系统属性,我可以获得以下连接: Hashtable env = new Hashtable(); env.put("java.naming.factory.initial", "com.ibm.websphere.naming.WsnInitialContextFactory"); env.put("java.naming.provi

我正在尝试使用JSR-160类访问启用了安全性的WebSphere7AppServer。如果我定义指向各种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);
但是,当我访问MBean上的
stats
属性时,就会出现以下错误:

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属性吗?

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

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


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

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


我看过该库,但我认为GPL与我正在开发的专有产品不兼容。我看过该库,但我认为GPL与我正在开发的专有产品不兼容。