为什么java rmi一直连接到127.0.1.1。当ip是192.168.X.X时?

2023-11-21

我有一个 java rmi 应用程序,我只是这样做:

Client:

Registry registry = LocateRegistry.getRegistry("localhost");
costApi = (CostApi) registry.lookup("server.CostApi");

当我在本地主机上托管服务器时,一切正常。当我在本地网络的另一台计算机上启动相同的程序时,地址为 192.168.x.x 并更改为:

Client:

Registry registry = LocateRegistry.getRegistry("192.168.x.x");
costApi = (CostApi) registry.lookup("server.CostApi");

它不再工作并且失败并出现一个非常奇怪的错误:

java.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is: 
    java.net.ConnectException: Connection refused
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:129)
    at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194)
    at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148)
    at com.sun.proxy.$Proxy0.dataCost(Unknown Source)
    at billing.data.DataBiller.performBilling(DataBiller.java:57)
    at billing.data.DataBiller.consumeMessage(DataBiller.java:46)
    at general.templates.RabbitWorker.run(RabbitWorker.java:124)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)

我什至没有尝试连接到 127.0.1.1,而是连接到 192.168.x.x,我该如何解决这个问题?我更喜欢只使用 java 代码,而不是用配置文件修改我的机器。我正在使用Linux


这通常是由错误配置引起的。检查你的/etc/hosts文件以确保:

  • localhost 映射到 127.0.0.1
  • 您的真实主机名映射到您的真实主机地址

众所周知,某些 Linux 发行版是从后到前的。

如果问题仍然存在,请尝试设置java.rmi.server.hostname客户端在执行远程方法调用时应使用的 IP 地址。需要在导出任何远程对象(包括注册表)之前对其进行设置。

该问题是由嵌入在存根中的 IP 地址引起的,该地址最终来自于类似的内容InetAddress.getLocalAddress(),如上所述,这是容易出错的。它被覆盖java.rmi.server.hostname.

This is FMI 常见问题解答中的项目 A.1,但请注意该项目的标题有误。期间不会发生这种情况lookup(),当您在生成的存根上调用远程方法时,就会发生这种情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么java rmi一直连接到127.0.1.1。当ip是192.168.X.X时? 的相关文章

  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 制作一个交互式Windows服务

    我希望我的 Java 应用程序成为交互式 Windows 服务 用户登录时具有 GUI 的 Windows 服务 我搜索了这个 我发现这样做的方法是有两个程序 第一个是服务 第二个是 GUI 程序并使它们进行通信 服务将从 GUI 程序获取
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 反射找不到对象子类型

    我试图通过使用反射来获取包中的所有类 当我使用具体类的代码 本例中为 A 时 它可以工作并打印子类信息 B 扩展 A 因此它打印 B 信息 但是当我将它与对象类一起使用时 它不起作用 我该如何修复它 这段代码的工作原理 Reflection
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 如何为 Linux 桌面条目文件指定带有相对路径的图标?

    对于我的一个 Linux 应用程序 我有应用程序二进制文件 一个 launcher sh 脚本 针对 LD LIBRARY PATH 和一个 desktop 文件 所有这些都位于同一文件夹中 我想使用图标的相对路径而不是绝对路径 我试过了
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 如何在 javadoc 中使用“<”和“>”而不进行格式化?

    如果我写
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • 获取 JVM 上所有引导类的列表?

    有一种方法叫做findBootstrapClass对于一个类加载器 如果它是引导的 则返回一个类 有没有办法找到类已经加载了 您可以尝试首先通过例如获取引导类加载器呼叫 ClassLoader bootstrapLoader ClassLo
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s

随机推荐

  • LinkedHashSet 删除重复对象

    我有一个简单的问题要问你 我的 Product 类具有如下字段 private Integer id private String category private String symbol private String desc pri
  • Glibc、GCC、binutils 兼容性

    有没有关于 binutils glibc 和 GCC 之间版本兼容性的官方文档 我发现这个矩阵binutils 与 GCC 版本兼容性 对于 GCC 和 glibc 来说 如果有这样的东西就好了 我问这个问题的目的是 我需要知道我是否可以构
  • 使用 Groovy Jenkins API 更新 Jenkins 作业

    我正在考虑使用 Groovy 脚本控制台在 Jenkins 上创建和更新作业 使用此处记录的 API http javadoc jenkins ci org 我发现了如何使用创建工作createProjectFromXML String n
  • 是否可以在 IE8 中运行某些 HTML5 输入类型?

    是否可以使用任何库在 IE8 中运行某些 HTML5 输入类型 例如范围 Points
  • 我的 Java 代码出现访问限制错误

    我正在尝试从网络摄像头捕获图像 但我的计算机中出现错误saveJPG method ERROR Multiple markers at this line Access restriction The type JPEGCodec is n
  • CURL 访问需要从不同页面登录的页面

    我有 2 页 xyz example a and xyz example b 我只能访问xyz example b当且仅当我登录xyz example a第一的 如果访问xyz example b无需通过其他 我只是通过浏览器拒绝访问 没有
  • 如何在 telegram bot api 中的一个命令中获取多个输入?

    例如 机器人有命令 set coordinates 它接受纬度和经度 如下所示 机器人 输入纬度 用户 16 4353 机器人 输入经度 用户 140 4325 问题是机器人每条消息仅接收一个坐标 并且要了解它是否需要请求纬度或经度 它应该
  • Scala 中数组的按元素求和

    如何计算数组的逐元素总和 val a new Array Int 5 val b new Array Int 5 assign values desired output Array gt a 0 b 0 a 1 b 1 a 2 b 2 a
  • Java中有互斥体吗?

    java中有互斥对象或者创建互斥对象的方法吗 我这样问是因为用 1 个许可证初始化的信号量对象对我没有帮助 想想这个案例 try semaphore acquire do stuff semaphore release catch Exce
  • 可以在Python中声明一个抽象异常吗?

    我想在 Python 中声明用户定义异常的层次结构 但是 我想要我的顶级用户定义类 TransactionException 变得抽象 也就是说 我打算TransactionException指定其子类需要定义的方法 然而 Transact
  • 什么时候应该使用 PHP mysqli_real_escape_string() 函数? [复制]

    这个问题在这里已经有答案了 我知道mysqli real escape string可以使用函数来防止SQL注入 但是 mysql real escape string 不会保护您免受某些注入 我的问题是我什么时候应该使用 mysqli r
  • 多态性和 SwiftUI

    给出以下示例 class ProfileTab Identifiable let id UUID let name String init name String self name name class ProfileQuoteTab P
  • 如何设置静态 UITableView 作为 UIView 的子视图?

    当我与一个TableViewController我可以在故事板中设置所有内容 自从我使用静态单元格代替动态属性对于我的表视图 我发现这种方法更方便且更容易实现 我连接新的 UITableView 类并简单地删除所有委托方法 工作起来就像一个
  • 将图块的 xyz 坐标转换为经度/纬度

    我想使用 openlayers 制作地图 但以独特的方式将其居中 例如 我的 z x y 坐标为 12 2045 1362 如何将其转换为经度 纬度 这与此完全相反 如何通过点击Leaflet地图获取tile的X Y Z坐标 我很难理解上述
  • 如何在 Clojure 中评估一系列不纯函数?

    如何评估 Clojure 中的 不纯 函数列表 例如 println 1 println 2 println 3 预期输出是 1 2 3 有没有一种方法可以在不使用宏的情况下实现这一目标 就像是 map evaluate fns seq m
  • JavaScript中如何检查字符串是否包含子字符串?

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 通常我会期望String contains 方法 但好像没有 检查此问题的合理方法是什么 推出 ECMAScript 6String prototype inc
  • PerRequestLifetimeManager 只能在 HTTP 请求的上下文中使用

    我有一个 MVC 应用程序 它使用 Unity 作为其 IoC 容器 并使用以下方式在我的应用程序中定义了多个服务 PerRequestLifetimeManager container RegisterType
  • 在 pycharm 中创建项目结构的正确方法是什么?

    我是 python 新手 不知道如何以正确的方式组织项目结构 因此所有自动导入都可以在 pycharm 中工作 这就是我目前的结构 在 PublisherSubscriberTest pycharm 生成此导入 from Rabbit Ra
  • 从库中查找 argc 和 argv

    我如何找到一个程序argc and argv来自共享对象 我正在用 C 编写一个库 将通过以下方式加载LD PRELOAD 我可以通过两种不同的方式找到堆栈 Read rsp通过内联 asm call Read proc
  • 为什么java rmi一直连接到127.0.1.1。当ip是192.168.X.X时?

    我有一个 java rmi 应用程序 我只是这样做 Client Registry registry LocateRegistry getRegistry localhost costApi CostApi registry lookup