问题标签 [rmiregistry]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何告诉 rmiregistry 在哪里寻找课程?
甲骨文说那registry
是
同一主机上的 RMI 服务器使用引导命名服务将远程对象绑定到名称
现在,我有这样一个服务器,rmiregistry
用于提供JNDI
.
和人类:
并rmiregistry
以rmiregistry &
. 然而,当我运行代码时,它抱怨在执行时无法解组参数,bind
因为Person
找不到类。
我知道rmiregistry
找不到类文件,但我不明白为什么。这是告诉它在哪里可以找到要绑定的类的正确方法吗?
java - RMI ConnectException:连接拒绝主机:127.0.0.1
java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is: [java] java.net.ConnectException: Connection refused (Connection refused)
尽管我已经完成了迄今为止在论坛上找到的所有提示,但在运行我的 Ant build.xml时出现此错误。
构建.xml 文件
客户政策
服务器策略
创建和运行 RMI 注册表
我的 /etc/hosts 文件
任何帮助将不胜感激。
java - RMI Registry 和 RMI Server 是否有不同的端口号?
我对 RMI 的印象好像它们是不同的服务器。我写一个接口为:
对象作为对象的类:
我希望上述类的 add() 方法卡在 while 循环中。
我将服务器程序编写为:
然后客户端程序:
我在端口 1099 启动 rmiregistry 并运行 nmap 命令:
我的系统中已经运行了一个 Web 服务器。然后我运行服务器程序:
然后在我在不同的机器上运行客户端之后:
由于 add() 方法卡在了 while 循环中,所以 RMI 服务器还没有完成。如果我再次运行 nmap,它不会显示任何额外的开放端口。
两个服务器是不同的还是相同的?
java - java.lang.ClassCastException: com.sun.proxy.$Proxy1 无法转换为
服务器:
客户:
问题是在铸造时发生异常,在这种情况下,它发生在:ProductFacade product_1 = (ProductFacade) registry.lookup(product_id);
例外:
java - 是否可以仅在 Java RMI 中的特定环回地址上创建注册表?
我正在使用 Java RMI。客户端和服务器在同一台机器上。要在服务器上启动注册表,我目前正在使用
所以我的注册表是在我的机器的 IP 和指定的端口上启动的。客户端使用此代码获取注册表
而且当我使用其他环回地址之一时,例如 127.0.0.2、127.0.0.3 .. 127.255.255.254。在创建注册表时,我是否有可能只为一个环回地址指定 IP(例如,仅用于 127.0.0.1)?没有类似的方法:
java - 无法将(服务)对象从 RMI 服务器发送到客户端
我一直在绞尽脑汁试图找出问题所在,我很确定服务器连接建立得很整齐。我什至放了一些系统打印以确保发送和接收对象。让我先发布我的代码。
RemoteService.java(接口):
服务器提供的服务使用的Service.java(接口):
RSimpl.java(RemoteService 接口实现者)
Client.java(客户端,这看起来很脏:p)
StartServer.java(实例化 RSimpl 对象并启动服务器)
Calculator.java(计算器服务,无需勾选)
DiceRoll.java(DiceRoll Service,这个不用勾选)
DigitalClock1.java(无需检查——这些仅用于编译目的)
我正在start rmiregistry 9797
从testrmi
目录(包)所在的目录运行。然后我java testrmi.StartServer
从同一个目录运行。我得到服务器正在运行消息,然后我从另一个目录运行客户端,但具有相同的包名,仅包含 Client.class、RemoteService.class 和 Service.class;客户端启动正常,显示所有三个服务,但是当我从列表中选择时,我收到异常错误“无法加载服务,重试?”。
注意:如果我在客户端包目录中复制服务(calculator.class、diceroll.class 和 digitalclock1.class),客户端会正确加载服务。我不希望客户端直接访问服务而不连接到服务器。
java - 互联网上的 Java RMI 连接
我正在尝试从托管在不同网络上的服务器获取远程对象。我能够在同一台机器和同一网络上连接,但是当我尝试从不同的网络获取它时,我得到:
连接拒绝主机:192.168.1.131;嵌套异常是:java.net.ConnectException:连接超时:连接
查找功能似乎在错误的网络中搜索。我尝试使用 System.setProperty 但它不起作用。这里的代码:
服务器
客户
我还需要java.rmi.server.hostname
在客户端 jar 中设置吗?
java - java rmi 简单项目classNotFoundException 绑定注册表
好的,我相信这应该很容易,但是我对 Java 还很陌生(我更像是一个 .NET 男孩:P),并且在遵循我在这里发现的每一个建议都没有成功之后,我认为是时候退后一步问。
我正在尝试使用客户端、服务器和定义了通用接口的通用项目来启动一个简单的 rmi 项目。我刚刚实现了我的服务器代码,当我尝试运行它以检查一切是否正常时,我遇到了 java.lang.ClassNotFoundException。
在对类似问题进行了多次回答之后,我很确定我的问题来自 rmiregistry 在与我的项目不同的位置上运行。
我使用以下代码来设置注册表代码库:
}
然后,我尝试使用这个主类启动我的服务器代码:
}
但是当我运行它时,总是在 IRegulador 接口处得到一个 java.lang.ClassNotFoundException。
现在有趣的部分:
- 我已经打印到控制台 java.rmi.server.codebase 值,它指向定义 IRegulador 接口的项目的 bin 文件夹。(file:/F:/Practicas%20y%20dem%c3%a1s/Sistemas%20Distribuidos/common/bin/)
- 显然,该项目也设置在服务器项目(Regulador)的类路径中
- Workspace 和 rmiregistry 位于不同的磁盘上
- 尽管如此,这似乎不是一个全局类路径问题,因为 Utils 类与 IRegulador 接口在同一个项目中,并且它在抛出异常之前运行(因为 java.rmi.server.codebase 设置正确)。
我尝试在调用它之前设置 rmiregistry 的类路径(尽管在某些答案上直接不鼓励),但没有任何改变。我也尝试从 Regulador 项目 bin 文件夹中启动 rmiregistry.exe,但似乎也没有改变任何东西。
来自 .NET 背景,我总是发现这些类路径问题令人困惑,而且这个问题开始消耗的时间比我怀疑它应得的要多得多。我迫切需要帮助。
更新:我开始认为问题出在从 IRegulador.class 传递到代码库的 url 中。如果我将它粘贴到 Windows 资源管理器中,SO 无法找到它,所以我认为它的构建存在一些阻止注册表到达路由的结构问题:
文件:/F:/Practicas%20y%20dem%c3%a1s/Sistemas%20Distribuidos/common/bin/
UPDATE2:我认为路径路径可能太复杂了,所以我决定对其进行简化并将其从任何非直线字符中剥离。现在代码库值是
文件:/F:/Practicas/SD/common/bin/
但是问题仍然存在,我不知道为什么 rmiregistry 无法访问该文件夹。
然后我决定将整个项目移动到执行 rmiregistry 的同一个磁盘上,看看它是否有任何改变。但没有任何改变,同样的问题。
java - LocateRegistry.createRegistry() 不会使应用程序保持活动状态
我已经调试了每一行代码以及多个工作示例,但由于某种原因,当我启动 RMI 服务器时,我的 java 应用程序刚刚关闭。
我希望 java 应用程序能够继续运行,因为我已经启动了一个注册表并且我已经反弹了一个实现java.rmi.Remote
.
但是发生的情况是应用程序在创建完所有内容后立即停止。
这是我的 Main.java:
我的 Server.java 看起来像这样:
服务器扩展的接口位于“共享”模块中。我用那个模块开始了这个项目,并添加了像服务器这样的模块。
这是我的控制台输出:
如您所见,当注册表绑定远程对象时,该进程立即关闭。
rmi - java.rmi.ServerError:服务器线程发生错误;嵌套异常是:
我正在将 jdk 从 8 升级到 10 并得到一个异常:
rmiregistry可以正常启动,但是我的RMI服务器程序无法绑定我的对象。为什么?