Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RMI命名查找引发由ClassNotFoundException引起的UnmarshaleException_Java_Rmi - Fatal编程技术网

Java RMI命名查找引发由ClassNotFoundException引起的UnmarshaleException

Java RMI命名查找引发由ClassNotFoundException引起的UnmarshaleException,java,rmi,Java,Rmi,在下面的示例中,使用naming.lookup()时,远程方法上的RMI服务验证不起作用。它不会给出任何错误,但不会返回远程接口值。但在搜索该服务上运行的所有服务时能够找到 Registry reg; String serverAddress = "xxxxx"; String serverPort = "xxxx"; String text = "x"; try { reg= LocateRegistry.getRegistry(serverAddress, (new Integer(

在下面的示例中,使用naming.lookup()时,远程方法上的RMI服务验证不起作用。它不会给出任何错误,但不会返回远程接口值。但在搜索该服务上运行的所有服务时能够找到

Registry reg;
String serverAddress = "xxxxx";
String serverPort = "xxxx";
String text = "x";
try {
    reg= LocateRegistry.getRegistry(serverAddress, (new Integer(serverPort)).intValue());
    final String regsitryList[] = registry.list();
    // Remote r = registry.lookup("xservice") ;
    if (Arrays.asList(regsitryList).contains("xservice")) {
        Remote r = registry.lookup("xservice");
        if(r!=null)
        log.debug("found the service");
    }
} catch (RemoteException re) {
    re.printStackTrace();
}

您声称没有发生的异常几乎肯定是由于
ClassNotFoundException
提到了远程接口或存根,或者它们所依赖的类。当您调用
list()
时,您只是检索字符串,而不是对象的类,因此没有例外


list()
lookup()
都会告诉您对象当前是否绑定在注册表中。这本身并不意味着该对象仍然存在。您必须对其执行远程方法才能知道这一点;为此,您需要缺少的类。

那么它会返回什么呢?你能将其转换到远程接口吗?不,我不知道它返回什么,因为要求只检查服务是否已启动并正在运行,不需要捕获返回。所以,如果你不知道它返回什么,你怎么可能知道它不是远程接口的实例?你到底有什么问题?为什么要同时调用list()和lookup()?我不是同时调用这两个函数。它们只是用来测试的。我的问题是,如果它是使用list找到的,为什么不使用lookup()找到呢?不,它没有返回任何内容。它抛出了一个
解组异常。
换句话说,它确实给出了一个错误!请将堆栈跟踪编辑到您的帖子中。为什么要花两天时间才能得到最基本的信息?谢谢。您可以看到,如果您正确地描述了您的问题并包含堆栈跟踪,而不是只说“无法”和“没有给出错误”之类的话,那么它会更快。