java.rmi.ConnectException:连接拒绝主机和java.rmi.UnmarshalException:错误解组返回标头;

时间:2013-06-04 19:20:09

标签: java rmi

我一直在学习RMI,我开始使用Hello World程序,我开始工作,然后开始使用所有工作的其他示例程序。 (有错误,但我在google / stackoverflow的帮助下调试了它们)。现在我开始编写自己的项目,它基本上是一个旅行推销员实现,它将强烈的计算卸载到服务器上。

当我的所有服务器RMI实施突然崩溃时,一切正常。即。当我从Eclipse运行computeEngine作为RMI应用程序(我使用RMI插件)时,我得到错误:

java.rmi.ConnectException: Connection refused to host 

或错误:

java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is: java.io.EOFException

我有4-5个不同的RMI应用程序都在运行,然后突然之间,我在服务器上运行的“ComputeEngine.java”文件开始为我的每个应用程序返回这两个错误中的一个。

注意:由于我正在测试这些应用程序,因此我使用“localhost”作为我的服务器主机名。换句话说,服务器和客户端是同一台机器。

我尝试过的事情:

  1. 我检查了我的etc / hosts /文件,发现127.0.0.1设置为localhost。我还创建了一个名为“virtualmachine”的新机器并使用了我的公共IP地址。两者都不起作用。
  2. 我有两次和三次检查我的server.policy和client.policy文件,两者似乎都很好。
  3. 我试过从终端运行RMI应用程序(而不是使用eclipse中的RMI插件),我得到了同样的错误
  4. 我退出所有java进程并重新启动所有内容以确保我首先启动服务器(其他线程建议这些错误来自首先运行客户端)
  5. 当我运行我的服务器时,我自己端口扫描并且端口1099(默认rmi端口)显示“LISTEN”(即使服务器返回异常)。
  6. 我尝试过更改java.rmi.server.hostname,但到目前为止似乎没有任何帮助。
  7. 当我在同一台计算机上运行服务器和客户端时,我不明白我是如何连接到主机的。

    我先前对RMI和Java的狡猾道歉并遗漏了一些可能的明显解决方案。

    我是否应该包含我尝试运行的任何源代码?

    编辑:这是堆栈跟踪:

    ComputeEngine exception:
    java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is: 
        java.io.EOFException
        at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:227)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:377)
        at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
        at engine.ComputeEngine.main(ComputeEngine.java:33)
    Caused by: java.io.EOFException
        at java.io.DataInputStream.readByte(DataInputStream.java:267)
        at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:213)
        ... 3 more
    

    谢谢!

    编辑2:

    我注意到,如果我在启动应用程序时重新启动了RMIregistry(就像我在Eclipse RMI插件中选择了重新启动rmiregistry的选项一样),我会得到一个类在我的'codebase.jar中的类的ClassNotFoundError ”。

    Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
        java.lang.ClassNotFoundException: compute.Compute
    

    有什么想法吗?

0 个答案:

没有答案