У меня есть модуль входа в систему, который вызывает удаленный EJB (JBOSS 5.1) для получения javax.security.auth.Subject:
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 это только говорит о том, что классы необходимы для демонтажа.Я не вижу причин, почему интерфейсов не достаточно для этого.