问题标签 [rmi]
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 - 通过容器会话管理在 Java 中使用 POJO RPC 比 JBoss 更简单
目前,我只知道一种在 Java 中为 POJO 执行 RPC 的方法,并且是使用非常复杂的 EJB/JBoss 解决方案。
有没有更好的方法来提供具有更薄层(在 Java EE 容器内或没有 Java EE 容器内)的类似功能,使用 RMI 或可以通过网络序列化和发送完整对象的东西?
我目前对 HTTP/JSON 序列化 BTW 不感兴趣。
编辑:澄清:我正在尝试用更易于在容器级别管理的东西替换旧的 EJB 2.1/JBoss 4 解决方案。我需要完全控制数据库(计划使用 iBATIS,这将允许我非常轻松地使用相当复杂的 SQL),但我想要保留的唯一内容是:
- 调用查找/数据修改方法(此处为自动序列化)。
- 透明的会话控制(认证/授权)。我仍然需要看看如何做到这一点。
当然,这两个项目都必须作为一个整体工作。不应授予没有凭据的用户访问权限。
因为我不太喜欢编写 webapps,所以我计划构建一个 GUI(Swing 或 SWT),它只管理 POJO、做一些报告并从容器调用方法。我希望序列化尽可能简单。
java - Java RMI 资源
我目前正在开展一个涉及广泛使用 Java RMI 的项目,我想知道是否有人知道有关它的任何好的资源。
我目前发现的材料的问题是它通常已经过时(如Java 1.3)和/或半完成。我什至很乐意买一本关于它的书,但在亚马逊上看,所有的书都像是 7 岁了。
因此,如果有人知道任何好的资源、书籍或好的示例实现,我会非常有兴趣了解它们。
java - JUnit 和 RMI 应用程序的最佳实践,RMI 注册表
我正在寻找为 RMI 客户端应用程序编写一组系统集成测试。我想在 JUnit 3.8.2 中启动 RMI 服务器,然后运行这些测试。有人做过吗?
我在主要的 pojo 中使用这样的东西:
将其转换为 junit 测试的最佳方法是什么,以便注册表仅启动一次并且仅在注册表实际启动时才运行测试?我想避免使用一种测试方法的测试类,其中包含来自 main 的所有测试代码,这是我在来到这里之前发现自己正在做的事情。
另外,在编写测试时我应该注意什么?任何 RMI 测试陷阱?
java - How to mix java webstart with RMI?
I want to distribute a webstart application which uses RMI.
I want to avoid to ask the user the address of the RMI server, because the website that distributes the application is also the RMI server.
Furthermore, I don't know the address of the server at build time, therefore the address must be added with ad hoc configuration to the JNLP, or the address must be provided at execution time. This is the preferred way: is it possible to do so?
java - 运行 rmi 服务器,classnotfound
嗨,我正在尝试运行一个将类绑定到命名服务器的 java 应用程序,但我不断收到 ClassNotFoundException
首先我启动注册表:
rmiregistry
然后从eclipse我尝试执行服务器但得到这个错误
java.rmi.ServerException:服务器线程发生RemoteException;嵌套异常是:java.rmi.UnmarshalException:错误解组参数;嵌套异常是: java.lang.ClassNotFoundException: progInternet2008.commons.NominabileFactory at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:396) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:250) at sun.rmi.transport.Transport$1.run(Transport.java:159) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:155) at sun.rmi .transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) 在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler。在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 在 java.lang .Thread.run(Thread.java:619) 在 sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255) 在 sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233) 在 sun.rmi。 server.UnicastRef.invoke(UnicastRef.java:359) at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source) at progInternet2008.Pozzobon.tesi.Slave.main(Slave.java:54) 原因:java.rmi。 UnmarshalException:解组参数错误;嵌套异常是:java.lang.ClassNotFoundException: progInternet2008.commons.NominabileFactory at sun.rmi.registry.RegistryImpl_Skel。
我已经阅读了 RMI Java 教程,但仍然无法正常工作......
作为VM Arguments,我设置了这个:
-Djava.rmi.server.codebase=文件:${workspace_loc}/progInternet2008
请帮我
(我正在使用 Java 6)
java - 如何测量通过 RMI 发送的对象的大小?
我正在对我的应用程序进行一些性能调整,并且想知道一种测量通过 RMI 发送的对象大小的好方法。
目的是使我的对象更精简。
java - 如何在防火墙后将 RMI 与小程序客户端一起使用?
如何将 RMI 与防火墙后面的小程序客户端一起使用?
如何将 RMI 与防火墙服务器和防火墙 applet 客户端一起使用?(如果可能的话)
我知道 RMI 服务器使用端口 1099(默认情况下,但这是可配置的);但是在此之后,通信需要在不同的随机端口上使用新的套接字。我也知道您可以在客户端上为 RMI over HTTP 隧道设置代理,这在理论上应该可以解决我的问题。但我无法让它工作(我尝试在我的 XP 客户端上设置环境属性,但 Internet Explorer 一直忽略它们)。
java - 从 Eclipse 中运行我们的客户端时出现问题
每当我们从 Eclipse 中运行 Java 客户端以使用 RMI 联系服务器应用程序时,我们都会收到异常:java.io.StreamCorruptedException: invalid type code: 01
这只发生在 Eclipse 中,没有其他地方(IntelliJ、命令行等)。
有谁知道发生了什么?
multithreading - 由于 java.lang.OutOfMemoryError:Java 堆空间,RMI 线程终止
我正在开发基于 comp 的应用程序。在这个应用程序中,有 n 个容器通过它们相互提供的 RMI 服务相互通信。在某些情况下,连接到我的容器的一个 rmi 线程由于内存不足错误而失去连接,但连接到我的容器的所有其他 RMI 线程都工作正常。
错误的堆栈tarce在这里:
要查看此异常,我必须激活 RMI 特定的日志记录。出现此问题是因为此终止线程的每个 RMI 调用都会将一些数据添加到我的容器的堆中。并且在某些时候它的大小超过了。
我对你们的问题是,如果我的容器的堆大小内存不足,为什么其他线程正在工作?如果您有任何想法,请告诉我。
java - Java - 分布式编程,RMI?
我在这里遇到了一个问题。我的目标是构建一个框架以允许集成不同的交通模拟模型。这种集成基于在模拟之间共享链路连接性、链路成本和车辆。
为了进行分布式模拟,我计划有一个“协调器”(星形拓扑)。所有参与的模拟只需注册它,并只与协调员交谈。然后协调器在每次模拟之间协调各种任务的执行。
分布问题的一个简单示例是当一个模拟“负责”某些对象(如道路)时。另一个是“负责”其他道路。然而,这些道路是相互关联的(因此,我们需要这些模拟之间的同步,并且需要能够远程交换数据/调用方法)。
我看过 RMI 并认为它可能适合这项任务。(抽象出必须创建一个有线信号规则)。
这是理智的吗?这里的问题是,模拟参与者需要将他们的一些数据存储集中在“协调器”中,以确保模拟之间的显式同步。此外,一些模拟可能需要来自其他模拟的组件或方法。(因此使用 RMI 的想法)。
我的基本方法是让“协调员”运行一个巨大的 RMI 注册表。并且每次模拟都只是在注册表中查找所有内容,确保在每个步骤中使用正确的对象。
任何人有任何沿着这条路前进的提示吗?