2012-09-26 2 views
3

여기에 표시된대로 Server 클래스 (java 서버 명령 사용)를 실행할 때 예외가 있습니다 (이미 rmiregistry 명령을 사용하여 rmiregistry를 시작했습니다). 무엇이 문제 일 수 있습니까?java.rmi.ServerException : 서버 스레드에서 RemoteException이 발생했습니다. 중첩 된 예외는 다음과 같습니다.

C:\Users\william\Desktop\HelloWorld\Server>java Server 
java.rmi.ServerException: RemoteException occurred in server thread; nested exce 
ption is: 
     java.rmi.UnmarshalException: error unmarshalling arguments; nested excep 
tion is: 
     java.lang.ClassNotFoundException: Hello 
     at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:419 
) 
     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:5 
53) 
     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTranspor 
t.java:808) 
     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport 
.java:667) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. 
java:1110) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor 
.java:603) 
     at java.lang.Thread.run(Thread.java:722) 
     at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknow 
n Source) 
     at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source) 
     at sun.rmi.server.UnicastRef.invoke(Unknown Source) 
     at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source) 
     at Server.main(Server.java:61) 
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested ex 
ception is: 
     java.lang.ClassNotFoundException: Hello 
     at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source) 
     at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:409 
) 
     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:5 
53) 
     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTranspor 
t.java:808) 
     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport 
.java:667) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. 
java:1110) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor 
.java:603) 
     at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.ClassNotFoundException: Hello 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
     at java.lang.Class.forName0(Native Method) 
     at java.lang.Class.forName(Class.java:264) 
     at sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:7 
30) 
     at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:674) 
     at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:611) 
     at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:6 
46) 
     at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:311 
) 
     at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStrea 
m.java:257) 
     at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1549) 
     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1511) 
     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 
750) 
     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) 
     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) 
     ... 13 more 

답변

5

javac와 java를 실행하는 동일한 경로로 명령 줄에서 rmiregistry를 시작하십시오.

관련 문제