【问题标题】:Spring RMI Server failing on ClassNotFoundException: RmiInvocationHandlerSpring RMI 服务器在 ClassNotFoundException 上失败:RmiInvocationHandler
【发布时间】:2014-06-22 04:48:06
【问题描述】:

我正在使用 spring rmi(版本 3.2.1)并尝试连接到远程 rmiregistry(“远程”在它没有嵌入的意义上,rmi 注册表在同一个节点上运行,但作为不同的进程)。

尝试启动 rmi 服务器时出现此错误:

java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: org.springframework.remoting.rmi.RmiInvocationHand ler
at sun.rmi.server.UnicastServerRef.oldDispatch(Unicas tServerRef.java:419)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastSe rverRef.java:267)
at sun.rmi.transport.Transport$1.run(Transport.java:1 77)
at sun.rmi.transport.Transport$1.run(Transport.java:1 74)
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:556)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandl er.run0(TCPTransport.java:811)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandl er.run(TCPTransport.java:670)
at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
at sun.rmi.transport.StreamRemoteCall.exceptionReceiv edFromServer(StreamRemoteCall.java:275)
at sun.rmi.transport.StreamRemoteCall.executeCall(Str eamRemoteCall.java:252)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:3 78)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at org.springframework.remoting.rmi.RmiServiceExporte r.prepare(RmiServiceExporter.java:291)

【问题讨论】:

    标签: spring rmi


    【解决方案1】:

    rmi 注册表无法访问 spring rmi 类。 (RmiInvocationHandler)。

    你有两个选择:

    • 使用代码库属性启用动态类下载:请参阅:http://docs.oracle.com/javase/6/docs/technotes/guides/rmi/codebase.html

    • 使用 CLASSPATH 授予访问权限:只允许 rmi 注册表使用它在启动时需要的所有类。例如:

      导出 CLASSPATH=lib/spring-core-XXX.RELEASE.jar:lib/spring-context-XXX.RELEASE.jar:lib/your-other-classes-used-in-rmi.jar

      rmiregistry

    【讨论】:

      猜你喜欢
      • 2013-12-03
      • 2016-10-15
      • 2012-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多