问题标签 [rmiio]

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.

0 投票
1 回答
2131 浏览

java - 无法通过 RMI 传递文件

FileInputStream即使我SimpleRemoteInputStreamRMIIO 库中包装它,我也无法发送到 RMI 服务器。这是我尝试运行客户端应用程序时得到的:

这是客户端应用程序:

服务器方法实现:

0 投票
1 回答
823 浏览

java - RMIIO and NoClassDefFoundError

I'm trying to upload a file from the client (JSE) to the server application (Java EE, EJB, Wildfly). I'm trying use first example from this page, but when I try to run the server applications on the Wildfly server - I get this error:

19:08:30,077 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.deployment.unit."ProjectEngineerServer.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."ProjectEngineerServer.jar".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment "ProjectEngineerServer.jar" at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [wildfly-server-8.2.0.Final.jar:8.2.0.Final] at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_20] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_20] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_20] Caused by: java.lang.RuntimeException: JBAS018757: Error getting reflective information for class com.system.main.HandlingBean with ClassLoader ModuleClassLoader for Module "deployment.ProjectEngineerServer.jar:main" from Service Module Loader at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:72) [wildfly-server-8.2.0.Final.jar:8.2.0.Final] at org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:58) at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:107) at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:92) at org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:77) at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [wildfly-server-8.2.0.Final.jar:8.2.0.Final] ... 5 more Caused by: java.lang.NoClassDefFoundError: com/healthmarketscience/rmiio/RemoteInputStream at java.lang.Class.getDeclaredMethods0(Native Method) [rt.jar:1.8.0_20] at java.lang.Class.privateGetDeclaredMethods(Class.java:2688) [rt.jar:1.8.0_20] at java.lang.Class.getDeclaredMethods(Class.java:1962) [rt.jar:1.8.0_20] at org.jboss.as.server.deployment.reflect.ClassReflectionIndex.(ClassReflectionIndex.java:65) [wildfly-server-8.2.0.Final.jar:8.2.0.Final] at org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:68) [wildfly-server-8.2.0.Final.jar:8.2.0.Final] ... 10 more Caused by: java.lang.ClassNotFoundException: com.healthmarketscience.rmiio.RemoteInputStream from [Module "deployment.ProjectEngineerServer.jar:main" from Service Module Loader] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final] ... 15 more 19:08:31,657 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) JBAS014613: Operation ("full-replace-deployment") failed - address: ([]) - failure description: {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"ProjectEngineerServer.jar\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"ProjectEngineerServer.jar\".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment \"ProjectEngineerServer.jar\" Caused by: java.lang.RuntimeException: JBAS018757: Error getting reflective information for class com.system.main.HandlingBean with ClassLoader ModuleClassLoader for Module \"deployment.ProjectEngineerServer.jar:main\" from Service Module Loader Caused by: java.lang.NoClassDefFoundError: com/healthmarketscience/rmiio/RemoteInputStream Caused by: java.lang.ClassNotFoundException: com.healthmarketscience.rmiio.RemoteInputStream from [Module \"deployment.ProjectEngineerServer.jar:main\" from Service Module Loader]"}}

I don't understand why the class cannot be found (com/healthmarketscience/rmiio/RemoteInputStream). I use a Maven and I added this to my pom.xml:

So I've got the rmiio library in my project.

How can I solve this problem?

0 投票
2 回答
191 浏览

ssl - 如何使用 JBoss 6 在 RMIIO 流上启用加密

我想加密 JBoss 6.1.0.Final 服务器和我的客户端之间的通信。为此,我通过 RMI 激活了 SSL,它运行良好。但是,我也使用 RMIIO,当我通过 RMI 激活 SSL 加密时,它并没有自动加密。在最好的情况下,我想使用我用来加密 RMI 通信的相同加密技术。

这是我的配置:

服务器/myThing/deploy/remoting-jboss-beans.xml

服务器/myThing/deploy/properties-service.xml

0 投票
1 回答
52 浏览

java - 在导出远程对象时,如何强制 RMIIO 库使用我的自定义 RMI 套接字工厂?

我在一个远程对象像这样导出自己的框架中工作:UnicastRemoteObject.exportObject(this, port, csf, ssf);

这只是给定的,无法更改。我现在正在尝试包含RMIIO 库来进行远程迭代。RMIIO 使用 导出远程对象UnicastRemoteObject.exportObject(Remote, int),根据 Javadoc 使用 RMISocketFactory。默认情况下,RMIIO 将端口设置为 0(任何端口)。

现在我绝对需要 RMIIO 来重用所有其他对象使用的现有 RMI 端口(它是防火墙中唯一打开的端口),并且还尊重我对套接字工厂的设置,因为 SSL 和压缩等。什么是最好的除了更改第 3 方代码之外,如何做到这一点?我正在使用 Java 8。

我曾希望有系统属性可以让我从外部控制套接字工厂,但似乎没有。

所以现在我认为我需要以RMISocketFactory.setSocketFactory(RMISocketFactory)编程方式调用。那是对的吗?这对我来说听起来有点毛茸茸。当我这样做时,我不需要担心为 lib 指定端口,因为 RMI 会在我的套接字工厂适当地实现时自动尝试并重用它,这是否equals()正确hashCode()

塞巴斯蒂安

0 投票
0 回答
137 浏览

java - Java RMI 连接拒绝

我确实收到以下错误:

我可以通过执行命令存储我的代码,但它卡在下面,

我认为绑定是成功的,因为它可以返回,但它卡在了最后textIterator.hasNext(),我不知道我到底犯了什么错误。

任何人都可以给出一些提示,因为我失去了对此进行调试的想法。