我有一个登录模块,它调用远程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中它只说,解组时需要这些类。我认为没有理由,为什么接口不足以满足这一要求。