- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这可能吗? (假设Java 6)
一个人为的/简单的例子来说明我的观点是:
如果可能,我如何在 RMI 服务(主机 Y 上的进程)上指定属性“java.rmi.server.codebase”?
如果主机 A 和 B 是同一台计算机,则当“java.rmi.server.codebase”为“file:///C:/rmiCodebase/myCommonInterface.jar”时,此配置有效 ”
如果主机 A 和 B 位于不同的计算机上,则重新绑定(bind)时会出现以下异常(在主机 Y 上设置相同的“java.rmi.server.codebase”):
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException:
如果主机 A 和 B 位于不同的计算机上,并且我通过 Web 服务器提供接口(interface) JAR(其中“java.rmi.server.codebase”是“http://Y/rmiCodebase/myCommonInterface.jar"OR "http://Z/rmiCodebase/myCommonInterface.jar"),然后我在重新绑定(bind)时遇到这个略有不同的错误:
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.AccessException: Registry.Registry.rebind disallowed; origin /10.0.190.25 (host Y) is non-local host
我有点困惑 - 如果所有 RMI 服务必须在与 RMIRegistry 相同的物理主机上运行(这是我成功工作的唯一事情),这似乎非常有限制
最终,我只希望机器 Z 能够对机器 Y 上运行的服务进行 RMI 调用。我向机器 Y 和 Z 上运行的进程提供 myCommonInterface.jar。我不知道甚至不希望机器 X 必须使用通用(远程)接口(interface)执行任何操作!
虽然以下链接很有用,但它无助于我回答这个问题:http://download.oracle.com/javase/1.4.2/docs/guide/rmi/codebase.html
最佳答案
我的用例非常简单(基本上,使用 RMI 作为命令分布式系统的方式),但我能够避免一起使用注册表。
这是我最终用于 Map-Reduce-miniframework 的解决方法。
之前:
In client:
remoteMaster = (Master) remoteRegistry.lookup("master");
// Add self to remote registry (BAD!)
Worker stub = (Worker) UnicastRemoteObject.exportObject(this, 15213);
remoteMaster.bind("workerName", stub);
之后:
(在此解决方法中,我们将手动保存 RemoteObject,而不是使用注册表)
In Master:
List<Worker> workers = new List<Worker>();
public void registerWorker(String name, Worker stub) throws RemoteException {
worker.add(stub);
}
保存远程实例后,您可以像任何其他对象一样传递它并调用它。
请注意,仅当您仅将注册表用作临时存储位置(我就是这样)时,此方法才有用,因为您只是通过不将其添加到注册表并保留它来避免“访问限制”本地的。
只是记录我的(有点hacky)解决方案,欢迎评论。
关于java - 在与 RMIServer 不同的主机上运行 RMIRegistry,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4039031/
这可以以某种方式追踪我的 rmiregistry 的状态吗?至少有一些类似记录器的信息会很好: [timestamp1] Object1 bound at localhost/OBJECT1 [tim
我正在研究 Java RMI。我在端口 2028 上运行我的 rmiregistry 没有什么问题,因为我已经使用它来运行我的测试程序。我可以使用其他端口运行我的程序,但我想知道,我们如何关闭在特定端
我正在开发一个在服务器上启动 rmiregistry 的基本应用程序: try { // create the registry and bind the name and o
我想设置 RMI 注册表的堆大小。是类似于java还是其他格式 最佳答案 rmiregistry-J-Xmx64m -J 将参数传递给 java 解释器 关于java - 设置 rmiregistry
我使用 ProcessBuilder 从我的代码运行 rmiregistry。如何将多个参数传递给 rmiregistry 进程? 到目前为止,我使用的是-J_xmx1024m。我知道需要传入一个附加
我最近发现了Java RMI API,并且我正在使用Rmiregistry来存储和获取远程对象。 然后,我发现我们可以使用LDAP来完成这项任务。我对这种方法很感兴趣,但经过一些研究,我对这两个选项感
我的 Spring Boot 应用程序有一个 bean: @Configuration public class JmxRmiConfig { @Value("${jmx.rmi.host:l
我正在尝试制作一个 Java RMI 客户端/服务器应用程序。我在启动我的应用程序的服务器端时遇到问题,因为当我尝试启动应用程序。 我从这里的简单教程开始:http://docs.oracle.com
当我尝试在服务器模式下执行 jMeter 时,我得到了这个异常: "Windows can not find 'rmiregistry'" 。我不知道如何解决这个问题,我搜索了一下,但我没有找到任何与
我们正在使用 Java RMI 开发一个客户端-服务器应用程序,为了进行测试,我们将使用一台计算机作为客户端和服务器。所以客户端和服务器应用程序都必须在同一台机器上调用rmiregistry,但显然它
我正在尝试通过批处理文件运行一个简单的 RMI 应用程序。我的老师给了我这些行,让我在记事本中编写并将其另存为 .bat : @cd %cd%\src @for/r %%a in (*.java) d
这可能吗? (假设Java 6) 一个人为的/简单的例子来说明我的观点是: 我有一个定义明确且永远不会改变的 RMI 接口(interface)(单个 JAR 文件,无模板参数) 在主机 X 上运行的
Oracle says 注册表是 a bootstrap naming service that is used by RMI servers on the same host to bind rem
对于服务器端的RMI,我们需要启动rmiregistry程序,还是直接调用LocateRegistry.createRegistry?如果两者都可以,各有什么优缺点? 最佳答案 它们是同一回事...r
将 Runtime.getRuntime().exec("start rmiregistry"); 放在 RMI 服务器中以自动启动 rmiregistry 是个好主意吗?或者你们还有其他建议吗? 最
请参阅this article的“RMI注册表问题”段落首先了解 Java Update 1.6.0_29 的背景。 如果我理解正确(我是德国人),更新会在 rmiregistry 中引入一个错误,该
我是一名优秀的程序员,十分优秀!