2011-11-07 5 views
0

У меня есть модуль входа, который вызывает удаленный 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 он говорит только, что классы необходимы для беспроблемного. Я не вижу причин, почему интерфейсы для этого недостаточно.

+0

Увидите что-нибудь подозрительное в журналах на стороне сервера? – Santosh

ответ

0

Кажется, проблема с загрузкой классов. Я нашел this сообщение форума. Проблема, с которой сталкивается, схожа. Посмотрите, поможет ли это вам.

Смежные вопросы