当前位置: 首页 > 面试题库 >

RMI连接被拒绝与本地主机

冀胤运
2023-03-14
问题内容

我在使用Java rmi时遇到问题:

当我尝试运行服务器时,出现了connectException(请参见下文)。

执行rebind方法时发生异常:

Runtime.getRuntime().exec("rmiregistry 2020");
MyServer server = new MyServer();
Naming.rebind("//localhost:2020/RemoteDataPointHandler", server);

当改用rmi:// localhost:2020 /
RemoteDataPointHandler时,它也不起作用。另外,使用默认端口不起作用。我也尝试使用127.0.0.1 ip地址,但效果相同。

我的运行时参数:

-Djava.security.policy=java.security.AllPermission



线程“主”中的异常java.rmi.ConnectException:连接拒绝主机:localhost; 嵌套的异常是:
    java.net.ConnectException:连接被拒绝
    在sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:574)
    在sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
    在sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
    在sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
    在sun.rmi.registry.RegistryImpl_Stub.rebind(未知来源)
    在java.rmi.Naming.rebind(Naming.java:160)
    在be.fortega.knx.server.Main。(Main.java:25)
    在be.fortega.knx.server.Main.main(Main.java:16)
引起原因:java.net.ConnectException:连接被拒绝
    在java.net.PlainSocketImpl.socketConnect(本地方法)
    在java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    在java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    在java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:433)
    在java.net.Socket.connect(Socket.java:524)
    在java.net.Socket.connect(Socket.java:474)
    在java.net.Socket。(Socket.java:371)
    在java.net.Socket。(Socket.java:184)
    在sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
    在sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
    在sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:569)
    ...另外7个

问题答案:

当我更换

Runtime.getRuntime().exec("rmiregistry 2020");

通过

LocateRegistry.createRegistry(2020);

有人知道为什么吗?有什么不同?



 类似资料:
  • 问题内容: 我正在尝试学习RMI编码,当我运行RMI的服务器端时,连接被拒绝。这是我服务器的主要方法 我相信实现代码无关紧要,因为它只是运行代码的已实现接口。我得到的例外是这个 我究竟做错了什么?客户端和服务器端都将在我的笔记本电脑上运行,因为这只是一个练习。我是否缺少代码或代码有问题?除了给我答案外,请解释为什么会这样,因为我不仅想让它起作用,而是在尝试学习。 **编辑我发现了为什么我的代码无法

  • 我已经设置了Flurl在我的Xamarin PCL中运行,并且我正在调用我在MVC应用程序中运行的Web Api。 似乎 Flurl 可以毫无问题地击中我部署的 API,但由于某种原因我无法在本地测试更改。 我现在做的是: 我也尝试过一个简单的GetAsync(),但再次失败。 任何帮助都将不胜感激。 编辑: 为了了解更多信息,该项目是Ionic移动应用程序的重新开发。我已经在本地运行了ionic

  • 问题内容: 我已经为RMI的客户端编写了以下代码。但是得到 代码: 问题答案: 如果要在绑定,重新绑定或查找时获取该注册表,则注册表不会运行。如果让它进行远程调用,请参阅Javadoc随附的RMI FAQ 中的项目A.1 ,如果您正在运行Linux,还请检查/ etc / hosts文件是否将127.0.0.1映射到localhost和您的真实IP地址。到您的真实主机名- 在某些Linux发行版中

  • 我试图在PHP中对本地主机执行一个cURL请求,但出现以下错误: CURL错误(7):连接到8000localhost端口失败:连接被拒绝 我试图用谷歌搜索这条信息,也在StackOverflow上找到了类似的问题,但似乎没有任何效果。 卷曲php: test.php: 如果删除“CURLOPT_IPRESOLVE”值,请求将永远不会解析。我还尝试将“CURLOPT_SSL_VERIFYPEER”

  • 这让我很困惑。 我有一个运行nginx-php-fpm的本地开发设置,我在其中使用.localhost作为每个项目的工作域。昨天Chrome停止了与本地域的合作。相反,它只是返回被拒绝的连接。DevTools将错误显示为net::ERR\u CONNECTION\u RESET。 访问http://127.0.0.1工作,但当然不适用于本地项目。 Safari继续与.localhost一起工作。

  • 我刚刚在我的个人计算机上安装了DBeaver,并试图创建一个PostgreSQL数据库。 我在连接到数据库窗口中输入了以下内容: 主机:本地主机 端口:5432 数据库:Postgres 用户:Postgres 这些值都是预先填充的默认值,所以我离开了它们,点击了测试连接...按钮。 当我单击测试按钮时,一个错误窗口打开,说:“到本地主机的连接:5432被拒绝。请检查主机名和端口是否正确,以及邮局