У меня есть модуль входа, который вызывает удаленный EJB (JBoss 5.1), чтобы получить javax.security.auth.Subject:Почему удаленный вызов EJB вызывает org.jboss.remoting.serialization.ClassLoaderUtility Exception?
public Subject getSubject (String a, String b) throws FailedLoginException
На удаленной стороне объект заполняется следующим образом:
MyOwnPrincipalInterface principal = (MyOwnPrincipalInterface)new MyOwnPrincipalImpl("name");
subject.getPrincipals().add(principal);
клиент всегда бросает исключение:
...
Caused by: java.lang.ClassNotFoundException: my.packages.MyOwnPrincipalImpl
org.jboss.remoting.serialization.ClassLoaderUtility.loadClass(ClassLoaderUtility.java:103)
...
клиент имеет доступ к интерфейсам, но не реализаций. Кажется, что клиенту нужны реализации для развязывания объектов. Почему это так? Может ли он быть выключен? Я бы предпочел не иметь реализаций в клиенте, потому что он делает изменения намного сложнее.
В http://docs.jboss.org/jbossremoting/docs/guide/2.2/html/ch07.html он говорит только, что классы необходимы для беспроблемного. Я не вижу причин, почему интерфейсы для этого недостаточно.
Увидите что-нибудь подозрительное в журналах на стороне сервера? – Santosh