我在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。