当前位置: 首页 > 知识库问答 >
问题:

RMI没有这样的对象例外

燕实
2023-03-14

我试图从Oracle页面运行Hello World RMI示例,但我不断收到错误。

我经常犯的错误是

服务器异常:java。马绍尔群岛共和国。NoSuchObjectException:表java中没有这样的对象。马绍尔群岛共和国。NoSuchObjectException:在sun的表中没有这样的对象。马绍尔群岛共和国。运输StreamRemoteCall。sun上从服务器(StreamRemoteCall.java:275)接收的例外。马绍尔群岛共和国。运输StreamRemoteCall。sun上的executeCall(StreamRemoteCall.java:252)。马绍尔群岛共和国。服务器UnicastRef。在sun上调用(UnicastRef.java:378)。马绍尔群岛共和国。登记处。注册impl_存根。在示例中绑定(未知源)。你好服务器main(Server.java:26)

下面是直接从我使用的站点获取的代码:

Hello界面:

包示例。你好

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Hello extends Remote {
    String sayHello() throws RemoteException;
}

这是我的服务器类的功能:

package example.hello;

import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

public class Server implements Hello {

    public Server() {}

    public String sayHello() {
        return "Hello, world!";
    }

    public static void main(String args[]) {

    try {
        Server obj = new Server();
        Hello stub = (Hello) UnicastRemoteObject.exportObject(obj,0);

        // Bind the remote object's stub in the registry
        Registry registry = LocateRegistry.getRegistry("localhost");
        registry.bind("Hello", stub);

        System.err.println("Server ready");
        } catch (Exception e) {
            System.err.println("Server exception: " + e.toString());
            e.printStackTrace();
        }
    }
}

客户代码:

package example.hello;

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;

public class Client {

    private Client() {}

    public static void main(String[] args) {

        String host = "localhost";
        try {
            Registry registry = LocateRegistry.getRegistry(host);
            Hello stub = (Hello) registry.lookup("Hello");
            String response = stub.sayHello();
            System.out.println("response: " + response);
        } catch (Exception e) {
            System.err.println("Client exception: " + e.toString());
            e.printStackTrace();
        }
    }
}

任何反馈都非常感谢!

共有2个答案

翟奕
2023-03-14

我认为你的接口方法应该有公共修饰符

颜云瀚
2023-03-14

注册表未运行。要么启动rmi注册表工具,要么将get注册表()更改为create注册表()。

这很奇怪,因为某些JVM一定一直在监听端口1099,但没有在其中运行注册表。通常没有注册表会导致java。马绍尔群岛共和国。连接异常

 类似资料:
  • 问题内容: 我试图让我的应用程序使用保存布尔值来更改屏幕的方向时保存一些数据。 我已经设置了许多断点,并且在变量视图中得到了布尔值的错误 我不知道为什么要在启动活动时用false值声明它,如果按下按钮将其更改为true。谁能帮我吗? 问题答案: 检查您的Android Studio中的构建变体是否具有 可调试 为真 proguard 被禁用或已被注释掉。

  • 问题内容: 我正在使用Django-CMS的Django项目中构建一个相当简单的应用程序,即研究项目。(这是我对项目/应用程序的首次尝试。)它的主要目的是存储各种知识资产(例如,研究人员撰写的文章,书籍等)。 问题是,当我将浏览器指向/ research /时,出现一条错误,提示表’research_journal’不存在(“ no such table”)。 我正在使用带有sqlite3数据库的

  • 问题内容: 我遵循的是官方Django文档中的第一个应用程序教程,尝试保存通过管理页面进行的某些更改时出现此错误。我对此进行了一些研究,但是我能够找到的可能解决方案(例如迁移数据库)根本行不通。如果您想查看我的代码的某些特定部分,请告诉我。 以下是错误: and the traceback: 问题答案: 我自己碰到了这个问题,它似乎与https://code.djangoproject.com/t

  • docx4j从2.8.0更新到3.1.0后,我对以下代码有问题: 这些代码在2.8.0版本中运行良好,但是在3.1.0版本中,当调用行wml.save(targetFile)时,我得到了一个异常。我不能进入这段代码,因为我在进入之前立即得到以下异常: 我正在使用版本 1.7.7 的 slf4j-api(对于 docx4j 3.1.0,标准依赖项是 slf4j-api 的 1.7.5),而 slf4

  • 问题内容: 我在另一个Stack Overflow问题上读到,Python就像Ruby一样,因为它涉及到“一切都是对象”,而Python中的一切都是对象,就像Ruby一样。 这是真的?Python中的所有对象都是像Ruby这样的对象吗? 两者在这方面有何不同?或者它们真的相同吗?例如,您能拿一个数字来做我所看到的Ruby吗: 可以在Python中以相同的方式完成吗? 问题答案: DiveIntoP

  • 我有一个Groovy测试类 在该类中有以下测试用例: 以及如下所示: 现在,当我运行这个测试用例时,我在调用时收到以下错误消息: 棒极了。lang.MissingPropertyException:类:ecs没有此类属性:msg1。MsgDispatcherTest 你知道我错过了什么吗?