Hallo, ich versuche, eine Java-Anwendung auszuführen, die eine Klasse an den Namensserver bindet, aber ich erhalte ständig eine ClassNotFoundException
Als erstes starte ich die Registry:
Registrierung
dann versuche ich von Eclipse aus, den Server auszuführen, bekomme aber diesen Fehler
java.rmi.ServerException: RemoteException im Server-Thread aufgetreten; verschachtelte Ausnahme ist: java.rmi.UnmarshalException: error unmarshalling arguments; Die verschachtelte Ausnahme ist: 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) bei java.security.AccessController.doPrivileged(native Methode) bei sun.rmi.transport.Transport.serviceCall(Transport.java:155) bei sun.rmi .transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) bei sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) bei sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run (TCPTransport.java:649) unter java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) unter java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) unter java.lang. Thread.run(Thread.java:619) bei sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255) bei sun.rmi.transport.StreamR emoteCall.executeCall(StreamRemoteCall.java:233) bei sun.rmi.server.UnicastRef.invoke(UnicastRef.java:359) bei sun.rmi.registry.RegistryImpl_Stub.rebind(unbekannte Quelle) bei progInternet2008.Pozzobon.tesi.Slave. main(Slave.java:54) Verursacht durch: java.rmi.UnmarshalException: Fehler beim Unmarshalling von Argumenten; Die verschachtelte Ausnahme ist: java.lang.ClassNotFoundException: progInternet2008.commons.NominabileFactory unter sun.rmi.registry.RegistryImpl_Skel.dispatch (unbekannte Quelle) unter sun.rmi.server.UnicastServerRef.oldDispatch (UnicastServerRef.java:386) unter sun.rmi .server.UnicastServerRef.dispatch(UnicastServerRef.java:250) bei sun.rmi.transport.Transport$1.run(Transport.java:159) bei java.security.AccessController.doPrivileged(native Methode) bei sun.rmi.transport. Transport.serviceCall(Transport.java:155) bei sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) bei sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) bei sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) bei java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) bei java.util.concurrent.ThreadPoolExecutor$Worker .run(ThreadPoolExecutor.java:908) bei java.lang.Thread.run(Thread.java:619) Verursacht durch: java.lang.ClassNotFoundException: progInternet2 008.commons.NominabileFactory bei java.net.URLClassLoader$1.run(URLClassLoader.java:200) bei java.security.AccessController.doPrivileged(Native Method) bei java.net.URLClassLoader.findClass(URLClassLoader.java:188) bei java .lang.ClassLoader.loadClass(ClassLoader.java:307) bei java.lang.ClassLoader.loadClass(ClassLoader.java:252) bei java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) bei java.lang.Class. forName0 (native Methode) bei java.lang.Class.forName(Class.java:247) bei sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:711) bei sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler. java:655) bei sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:592) bei java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:628) bei java.rmi.server.RMIClassLoader.loadProxyClass( RMIClassLoader.java:294) bei sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:238) bei java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1531) bei java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1493) bei java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732) bei java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) bei java.io. ObjectInputStream.readObject(ObjectInputStream.java:351) … 12 mehr
Ich habe das RMI-Java-Tutorial gelesen, konnte es aber immer noch nicht zum Laufen bringen …
Als VM-Argumente habe ich Folgendes festgelegt:
-Djava.rmi.server.codebase=file:${workspace_loc}/progInternet2008
Bitte hilf mir
(Ich verwende Java 6)
Hast du dieses Problem am Ende behoben?
– Nathan Feger
18. März 09 um 17:56 Uhr
Eine Datei: Codebase-URL funktioniert nur, wenn sich Client und Server auf demselben Computer befinden, in diesem Fall benötigen Sie die Codebase-Funktion überhaupt nicht, oder wenn sie sich auf ein gemeinsam genutztes Laufwerk bezieht, das von Client und Server gleich aussieht , was ein LAN impliziert, wobei wiederum fraglich ist, ob man das Feature überhaupt braucht.
– Benutzer207421
6. Juni 13 um 12:17 Uhr