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);

しかし、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.

過去2日間、想像できるあらゆる方法でこれに対する解決策をグーグル検索しましたが、何も機能しません。

JSR-160 を介してセキュアな WebSphere AppServer で MBean 属性を照会することは実際に可能ですか?

4

1 に答える 1

1

JSR-160を使用して、保護されていないWebSphereインスタンスに接続するのは非常に簡単です。お気づきのとおり、セキュリティで保護されたインスタンスに接続すると、事態はさらに複雑になります。クラスパスに適切なライブラリが必要であり、いくつかの構成ファイル(sas.client.propsおよびssl.client.props)も設定する必要があります。個人的には自分のコンピューターでこれを構成することはできましたが、同僚から自分のコンピューターでこれを構成するように頼まれたとき、これを機能させることができませんでした。

これらの問題を回避したい場合、および唯一の要件が標準のJMX APIを使用することである場合(ただし、基礎となるプロトコルは気にしない)、次のドキュメントで説明されているアプローチを使用できます。

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

于 2012-10-17T08:41:52.040 に答える