프로그래밍 방식의 원격 JMX 클라이언트로 실행 중이며 WebSphere Application Server의 MBean 서버에 연결합니다. 지금까지는 적절한 JMXServiceURL을 사용하여 연결하고 Bean의 알림을 구독 할 수 있습니다.JMX 원격 클라이언트에서 누락 된 로컬 클래스를 안전하게 처리하는 방법
그러나 - 빈 내 로컬 클래스 경로에 클래스를하지 포함하는 통지를 보내는 경우, 그것은 좋은 스택 추적과 불면 :
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에 도착하지 않습니다.
그래서; 내가 더 이상 알림을받지 못하게하지 않고도이 시나리오를 처리하려면 어떻게해야합니까?
명백한 진술하지만, 포괄적하려고 클라이언트 클래스 경로
에 클래스 라이브러리를 추가 : 나는 복잡한 순서 (내 생각)을 오름차순,이 문제를 해결하기 위해 4 가지의
멋진 대답을, 그것을 할 시간을내어 주셔서 감사합니다! – Brabster