问题标签 [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 - rmi 注册表绑定问题
我在 IP:192.168.133.2 的虚拟机(运行 Windows XP)上运行 RMI Regitry,并尝试使用以下代码绑定 RMI 服务器(在不同的 vm XP IP:192.168.133.3 上运行):
在哪里
但我得到了这个例外:
我认为 RMI Registry 不接受任何不在同一台 RMI Registry 运行机器上运行的 rmi 服务器。
但是如何让这个注册表接受我的 rmi 服务器呢?
ps:我使用 JBuilder X 作为 IDE。
我正在尝试实现一个移动代理,它将在一些 rmi 服务器上运行以对它们进行一些工作并将结果返回到起始站,以便 RMI 服务器实现托管该代理的环境以完成其工作并将其发送到下一个它将通过注册表找到的站点
sockets - 两个 RMIRegistry.exe 在同一个端口上?
我正在使用 Windows 7(专业版,64 位)系统,并且我已经看到了当前的情况,有人可以突出显示我并解释一下怎么可能吗?我已经安装了 Java 6(仅限 JRE)和 Java 7(JDK),都是 64 位的。
在命令提示符下,我从目录运行
rmiregistry.exe
(默认端口 1099) 。jre6/bin
当那个正在运行时,我从另一个命令提示符尝试再次运行它。它给了我一个例外,说端口已经绑定。同样,
rmiregistry.exe
来自jdk7/bin
目录。同样的例外,已经绑定。在命令提示符下,我从目录运行
rmiregistry.exe
(默认端口 1099) 。jre6/bin
当那个正在运行时,从另一个命令提示符我尝试rmiregistry.exe
从目录运行(默认端口 1099)jdk7/bin
。它运行!从结果来看netstat -a -b -o
,两个 PID 都在侦听 IPv4 和 IPv6 上的端口 1009。第一个运行,回复 RMI 操作和 API。
这怎么可能?两个 RMIRegistry 怎么能监听 1099 端口?我错过了什么吗?
谢谢你的帮助。
更多细节:
- 运行 Java 6 RMI 注册表,异常堆栈跟踪
Caused by: java.net.BindException: Address already in use: JVM_Bind
从java.net.PlainSocketImpl.socketBind(Native Method)
; - 运行 Java 7 RMI 注册表,异常堆栈跟踪,相反,来自
java.net.DualStackPlainSocketImpl.bind0(Native Method)
.
有什么意义吗?这与-Djava.net.preferIPv4Stack=true
VM选项有关吗?从 Java 7 开始,我如何知道 IPv4 和 IPv6 RMI 端口是否已被 Java 6 或 Java 7 RMI Registry 占用?
再次,更多细节......
我已经停止了一切。只是“为了好玩”,我在端口 1099 上运行了 Calibre(电子书管理应用程序)内部 Web 服务器;
rmiregistry.exe
从 Java 6 开始,它告诉我它无法运行,因为端口很忙;rmiregistry.exe
从 Java 7 运行...但是,和以前一样,端口 1099 上的回复来自 Calibre。
还有一个:在 Ubuntu(使用 OpenJDK)上运行相同的 RMI 注册表(Java 6 + Java 7,32 位),我通过java.net.PlainSocketImpl.socketBind(Native Method)
(甚至对于 Java 7!)有“端口已在使用中的消息”。没有两件东西可以占用同一个端口……像往常一样!所以,至少,我知道这是一个 Windows 7 + Java 问题!
对我还有什么提示吗?
我在使用 DatagramSocket 时看到了类似的东西:我在一个带有 Java 6 的端口上使用它,然后我用 Java 7 运行另一个相同的应用程序,它连接到该端口(但不起作用),即使它已经被占用。然后,使用 Java 7 启动第三个相同的应用程序,这个应用程序会意识到这个端口已经很忙。我认为这可能与 RMI Registry 相同。
为什么我可以在同一个端口上运行两个 RMI 注册表?为什么 Java 6 和 Java 7 在某些方面存在关于套接字和端口的“冲突”行为?另外,为什么 Windows(在我的情况下是 7)不会阻止同一端口上的第二个请求?
java - The terminal gets closed when starting rmiregistry & in Ubuntu 10.04
The terminal get closed when I type 'rmiregistry &' then Enter in Ubuntu 10.04. I did not get any error, the terminal is closed the moment I pressed rmiregistry & + Enter. Please help
java - RMI - 在同一台机器上工作,而不是在局域网中
我正在尝试在一台服务器和两个客户端之间建立双向通信。当所有程序都在同一台机器上运行时,这非常有效,但当我尝试使用 LAN 网络时它不起作用。我得到了错误:
这是服务器代码:
这是客户端代码的构造函数:
其中 registerClient(String name) 代码大约是(在 Game 类中):
所有防火墙都被禁用。
我已经在这个问题上工作了好几个小时,但我仍然没有发现问题所在。如果您能帮我一点忙,我将不胜感激。谢谢
java - 为什么 RMI 注册表忽略 java.rmi.server.codebase 属性
我正在运行 java RMI 的 Hello World 示例
1)我在一个空文件夹中运行注册表
2) 我启动 HTTP 服务器以在运行时检索类。下载文件夹包含客户端-服务器的远程接口
3)我启动服务器传递 java.rmi.server.codebase 属性,如 java RMI 教程中所建议的那样
RMI 注册表没有联系 HTTP 服务器并且正在引发异常(请参阅问题后的详细信息)。 但是,如果我执行以下操作
1) 使用 java.rmi.server.codebase 属性启动 rmi 注册表
2)像以前一样启动HTTP服务器
3)不带任何选项启动服务器
它有效,但为什么呢?似乎在第一个过程中,RMI 注册表忽略了 java.rmi.server.codebase 属性
谢谢
==================================
我在跑步
RMI 注册表的异常
java - 我正在运行一个 RMI 应用程序并且没有安全管理器:RMI class loader disabled exception come
这是整个例外:
我的客户端包包含两个类Computeappproj
,其中main
还包含和
prog
我已经搜索了 1000 个论坛。没有任何帮助。
希望有积极的东西
好的
或许...
rmiregistry - 无法在 ubuntu 服务器上启动 jstatd
我想设置两台运行 jstatd 的服务器,这样我就可以实时监控我的应用程序。Web 服务器已经启动并运行,但另一台服务器总是会出现这样的异常。
无法将 /JStatRemoteHost 绑定到 RMI 注册表 java.rmi.ServerException:RemoteException 在服务器线程中发生;嵌套异常是:java.rmi.UnmarshalException:错误解组参数;嵌套异常是: java.lang.ClassNotFoundException: sun.jvmstat.monitor.remote.RemoteHost (no security manager: RMI class loader disabled) at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:419) at sun.rmi .server.UnicastServerRef.dispatch(UnicastServerRef.java:267) 在 sun.rmi.transport.Transport$1.run(Transport.java:177) 在 sun.rmi.transport.Transport$1.run(Transport.java:174) 在java.security.AccessController.doPrivileged(Native Method) 在 sun.rmi.transport.Transport.serviceCall(Transport.java:173) 在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java: java:143) 引起:java.rmi.UnmarshalException:解组参数错误;嵌套异常是:java.lang.ClassNotFoundException: sun.rmi.server 的 sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source) 处的 sun.jvmstat.monitor.remote.RemoteHost(无安全管理器:禁用 RMI 类加载器)。 Sun.rmi.transport.Transport$1.run(Transport.java:177) 上 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267) 上的 UnicastServerRef.oldDispatch(UnicastServerRef.java:409) sun.rmi。 transport.Transport$1.run(Transport.java:174) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:173) at sun.rmi.transport.tcp .TCPTransport.handleMessages(TCPTransport.java:553) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler。
我确定 jstatd 加载了内容是的策略文件
授予代码库 "file:${java.home}/../lib/tools.jar" { 权限 java.security.AllPermission; };
我无法弄清楚问题出在哪里,请帮忙。
java - RMI理论,下载存根文件
当客户端请求远程引用 RMIregistry 时,Rmiregistry 向客户端发送存根类的实例,客户端还需要此类 (.class) 的定义。
客户端向 Rmiregistry 请求 stub.class 或 Rmiregistry 自动发送它?
使用代码库属性我可以强制客户端从我的网络服务器下载 stub.class 吗?
谢谢
**编辑:似乎如果我使用 rmic 生成存根文件,然后客户端尝试下载它们,如果我不使用 rmic 客户端不会下载存根,但我的程序可以工作。
你能解释一下吗?
**最终编辑:好的,我想已经理解了。感谢 EJP
问候
macos - 在 RMI 中网络配置更改后存储的端点 IP 地址
我有一个在 mac 上运行的 RMI 服务器。一旦我更改了服务器 IP 并重新启动应用程序和客户端,客户端就会使用正确的绑定和查找地址继续连接到旧 IP 地址。我真的不知道出了什么问题,因为该程序正在另一个具有不同端口的 linux 服务器上运行。
远程对象客户端得到的是Proxy[MinervaInterface,RemoteObjectInvocationHandler[UnicastRef [liveRef: [endpoint:[192.168.0.104:51815](remote),objID:[40d99efb:140ba232cec:-7fff, 6333954213550330995]]]]]
其中 192.168.0.104 是旧 IP,应该是 10.0.1.104
我检查了主机文件和我的代码,没有类似的东西192.168.0.*
请帮忙,谢谢。
更新
我已经确认这是服务器注册表问题。但是我已经重新启动了服务器。我不记得我对注册表还做了什么。有什么方法可以手动设置吗?
更新
我在那个服务器上运行这段代码InetAddress.getLocalHost().getHostAddress()
,它返回192.168.0.104
,可以解释这个地址来自哪里。但是现在服务器上没有这个地址
解决了
我发现java使用主机名来查找本地主机地址,该主机名不是并且由于某种原因localhost
没有被更新。OS X Server
我从 OS X Server 控制台更新了记录并解决了这个烦人的问题。
从来没想过
java - 客户端/服务器/两者中的 Java RMI Eclipse ClassNotFound 和 .lookup(Unknown Source)
问题似乎很流行-> 使用 Eclipse IDE 运行 RMI 服务器时出现 ClassNotFoundException ...当然,我从 http://www.genady.net 深入研究了在 RMI Eclipse 插件中设置代码库参数的所有可能方式。在 SERVER 的 main 中使用该代码:
或在 1099 上使用预先启动的 RMIRegistry:
当涉及到 Server Impl Stub 时,ClassNotFound ......经过数小时的脱发后,我决定在 try 块中创建注册表,而不是使用它来注册我的服务器:
有效!!!精湛,但比客户端执行产生了这个:
而且我一点也不知道我应该做什么...... RMIRegistry 是否搞砸了?是代码的错吗?
如果可以,请你帮助我。
以下是代码,打印服务器、打印客户端、打印通用(带有共享接口):
///////////////////////////////////////// ////
///////////////////////////////////////// ////
我指望一些好的建议!
提前致谢,