远程对象中javax.json.JsonValue的Java RMI NoClassDefFoundError

b1

遇到在调用期间引起的异常 UnicastRemoteObject.exportObject().

javax.json.jar在类路径上,可以在应用程序的许多其他地方使用而不会出现任何问题。

在添加添加了将JsonValue返回到远程对象的方法之前,应用程序的这一部分工作正常。

有任何想法吗?

java.rmi.ServerError: Error occurred in server thread; nested exception is: 
    java.lang.NoClassDefFoundError: javax/json/JsonValue
    at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:416)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267)
    at sun.rmi.transport.Transport$1.run(Transport.java:177)
    at 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:556)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.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:745)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:378)
    at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)

注意:我也尝试使用代码库直接指向javax.json.jar来运行rmiregistry,但是仍然存在异常

rmiregistry -J-Djava.rmi.server.codebase=file:///JarLibrary/javax.json.jar &
洛恩侯爵

遇到在调用期间引起的异常 UnicastRemoteObject.exportObject().

不,你不是。请参阅堆栈跟踪。它发生在Registry.bind().

您需要使用属性集运行服务器java.rmi.server.codebase,但是除非所有客户端都在服务器主机中运行,否则file://代码库URL将无法工作,在这种情况下,您实际上并不需要使用以下代码库功能:全部,或者指向注册表和注册表都可以使用的共享文件夹。通常是HTTP。

但是我怀疑您是否根本需要代码库功能。您只需要确保相关的jar文件位于注册表和客户端的CLASSPATH上。确保注册表的最简单方法是LocateRegistry.createRegistry()在服务器JVM中使用而不是在外部rmiregistry程序中使用。

我也想知道为什么您完全使用JSON。RMI建立在对象序列化之上。您无需添加其他序列化器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章