У меня есть следующий класс EJB, созданный в приложении, работающем в JBoss 5
</p>
<pre><code>public interface ISlaveServer {
public String getId();
public String getName();
}
@Remote
public interface IMasterServer {
public String getId();
public void addSlave(ISlaveServer slaveServer);
public void removeSlave(ISlaveServer slaveServer);
}
@Stateless
@RemoteBinding(jndiBinding = "MasterServer")
public class MasterServer implements IMasterServer, Serializable {
UUID id = UUID.randomUUID().toString();
public String getId() { return id.toString(); }
public void addSlave(ISlaveServer slaveServer) { ... }
public void removeSlave(ISlaveServer slaveServer) { ... }
}
У меня есть следующий класс, созданный в приложении, запущенном в Tomcat 6
</p>
<pre><code>public static class SlaveServer implements ISlaveServer, Serializable {
UUID id = UUID.randomUUID().toString();
public String getId() { return id.toString(); }
public String getName() { return "SlaveServer"; }
}
Наконец, у меня есть следующий код, также работающий в приложении на основе Tomcat ...
</p>
<pre><code> Properties properties = new Properties();
properties.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
properties.put("java.naming.factory.url.pkgs", "org.jboss.naming.client");
properties.put("java.naming.provider.url", "jnp://localhost:1099");
try {
Context ctx = new InitialContext(properties);
IMasterServer masterServer = (IMasterServer) ctx.lookup("MasterServer");
String masterId = masterServer.getId();
masterServer.addVideoServer(new SlaveServer());
}
catch(NamingException e) {
e.printStackTrace();
}
Все работает нормально до звонка на
</p>
<pre><code>masterServer.addVideoServer(new SlaveServer());
, когда я получаю следующее исключение ...
java.lang.ClassNotFoundException: org.test.SlaveServerTest $ SlaveServer (без диспетчера безопасности: загрузчик классов RMI отключен)
Из того, что я могу сказать, это исключение может происходить с удаленного сервера JBoss, потому что удаленные вызовы работают (masterServer.getId () работает нормально). Просто вызов, по которому я передаю локально реализованный объект, терпит неудачу.
Что мне нужно сделать, чтобы это работало?