【问题标题】:NoSuchObjectException - No such object in tableNoSuchObjectException - 表中没有这样的对象
【发布时间】:2014-09-25 14:51:02
【问题描述】:

我正在尝试设置一个简单的 RMI 实现,但遇到了一些麻烦。

服务器启动正常,但客户端似乎永远找不到远程对象(Naming.lookup 每次都失败)。从阅读中人们提到将远程对象(银行)存储在静态变量中,但这也没有奏效。

更新:如果我删除对端口号的所有引用,整个事情似乎工作正常。有谁知道这是为什么?

服务器:

public class Bank extends UnicastRemoteObject implements BankInterface {

    public static void main(String args[]) throws Exception {

        try{
            System.setSecurityManager(new SecurityManager());
            System.out.println("Security Manager set.");

            Bank myBank = new Bank(Integer.parseInt(args[0]));
            System.out.println("Bank instance created");

            Naming.rebind("Bank", myBank);
            System.out.println("Name rebind completed.");
            System.out.println("Server ready for requests!");

        }catch(Exception e){
            System.out.println("Error in main - " + e.toString());
        }
    }
}

客户

public class ATM {

    public static void main (String args[]) throws Exception {
        String URL = "//" + args[0] + ":" + args[1] + "/Bank";
        System.out.println("Connecting to: " + URL);
        BankInterface bank = (BankInterface)Naming.lookup(URL);
        System.out.println("Connected!");
    }
}

堆栈跟踪

Exception in thread "main" java.rmi.NoSuchObjectException: no such object in tab
le
        at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Stream
RemoteCall.java:276)
        at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:
253)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:379)
        at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
        at java.rmi.Naming.lookup(Naming.java:101)
        at ATM.main(ATM.java:8)

我从 cmd.exe 运行的命令是:

rmiregistry

java 银行 7777

java ATM 本地主机 7777 测试方法

【问题讨论】:

  • 你不应该将变量“URL”大写,因为存在一个名为java.net.URL的类

标签: java rmi


【解决方案1】:

您正在其默认端口上运行注册表,并通过不使用绑定字符串中的端口号绑定到该注册表,但您正在端口 7777 上查找不存在的注册表。绑定字符串和查找字符串应该相同。

NB 查找与连接不同。在您调用远程对象之一之前,不会连接到您的远程对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-13
    • 2019-02-09
    • 2015-08-16
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    相关资源
    最近更新 更多