我在JBoss 5中运行的应用程序中实例化了以下EJB类

ojit_pre

我在Tomcat 6中运行的应用程序中实例化了以下类

ojit_pre

最后,我在基于Tomcat的应用程序中也运行了以下代码...
ojit_pre

一切正常,直到致电至

ojit_pre

那时我得到以下异常...

java.lang.ClassNotFoundException:org.test.SlaveServerTest $ SlaveServer(无安全管理器:禁用RMI类加载器)

据我所知,此异常可能源自远程JBoss服务器,因为远程调用有效(masterServer.getId()正常)。只是我传递本地实现的对象的调用失败了。

我需要做什么才能使它正常工作?

最佳答案

SlaveServer类是可序列化的。这意味着必须使该类对客户端(JNDI代码段)和服务器(MasterServer)均可用。当在服务器上找不到类时,RMI可以从远程位置下载代码。但是,执行从远程客户端下载的代码是潜在的危险操作,只有在已安装安全管理器的情况下才允许执行此操作。

您需要在包含MasterServer的应用程序中包含SlaveServer类(或某些服务器类路径),或者需要停止使用Serializable。

09-30 17:58