私は、WebSphere Application ServerのMBeanサーバーに接続して、プログラムによるリモートJMXクライアントで遊んでいます。これまでのところ、適切なJMXServiceURLを使用して接続し、Beanからの通知をサブスクライブできます。
しかし、Beanがローカルクラスパスにないクラスを含む通知を送信すると、素晴らしいスタックトレースで爆発します。
SEVERE: Failed to fetch notification, stopping thread. Error is: java.rmi.RemoteException: CORBA NO_IMPLEMENT 1330646337 No; nested exception is:
org.omg.CORBA.NO_IMPLEMENT: The sender's class RMI:com.mycompany.MyWeirdClass:143EC4C84209B825:EAD08F0965BC6044 is not present on the local classpath, and the class is not marked as truncatable, so it cannot be unmarshaled. vmcid: OMG minor code: 1 completed: No
java.rmi.RemoteException: CORBA NO_IMPLEMENT
... more frames ...
これは最終的に次の原因で発生します。
Caused by: java.lang.ClassNotFoundException: com.mycompany.MyWeirdClass
at com.ibm.rmi.util.RepositoryId.loadClass(RepositoryId.java:675)
at com.ibm.rmi.util.RepositoryId.checkClassCache(RepositoryId.java:644)
...
IBMのコードの奥深くで爆発しているように見えますが、私ができることはどこにもありません。問題のある通知がNotificationListenerに届くことはありません。
それで; それ以上の通知を受け取れないようにすることなく、このシナリオを処理するにはどうすればよいですか?