TP05 - RMI RemoteException - ClassNotFoundException [RESOLU]

Modérateurs : graffion, jmdouin, agoncal, mlebihan

Agnès
Messages : 4
Inscription : 20 nov. 2016 16:48

TP05 - RMI RemoteException - ClassNotFoundException [RESOLU]

Message par Agnès » 20 nov. 2016 17:03

Bonjour à tous,

j'essaye de reproduire tout simplement la compilation du paquage Hello.
Je suis sous OSX, java 8
j'ai tout d'abord eu du mal à obtenir une connexion Rmi correcte, puis j'ai pu obtenir un test concluant en compilant le projet TP05.corrections
Puis j'ai voulu compiler le projet TP05 téléchargé, sans succès, j'ai toujours des messages d'erreurs.
Maintenant, je n'arrive même plus à obtenir une connexion Rmi correcte avec le corrigé, j'ai ce type d'erreur :

Code : Tout sélectionner

java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
	java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
	java.lang.ClassNotFoundException: HelloPetstoreServerRemote
	at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:421)
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:272)
	at sun.rmi.transport.Transport$1.run(Transport.java:200)
	at sun.rmi.transport.Transport$1.run(Transport.java:197)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
	at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:276)
	at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:253)
	at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:379)
	at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
	at java.rmi.Naming.rebind(Naming.java:177)
	at HelloPetstoreServer.main(HelloPetstoreServer.java:20)
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
	java.lang.ClassNotFoundException: HelloPetstoreServerRemote
	at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
	at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:411)
	at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:272)
	at sun.rmi.transport.Transport$1.run(Transport.java:200)
	at sun.rmi.transport.Transport$1.run(Transport.java:197)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: HelloPetstoreServerRemote
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.rmi.server.LoaderHandler$Loader.loadClass(LoaderHandler.java:1207)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at sun.rmi.server.LoaderHandler.loadClassForName(LoaderHandler.java:1221)
	at sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:731)
	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:646)
	at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:311)
	at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:265)
	at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1566)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1781)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373)
	... 15 more
Je n'arrive même plus à faire démarrer le server,
j'ai tout essayé, rien n'y fait depuis plusieurs heures maintenant,
quelqu'un peut-il me mettre sur la voix, d'avance merci

fazil
Messages : 31
Inscription : 09 oct. 2016 21:28

Re: TP05 - RMI RemoteException - java.lang.ClassNotFoundExce

Message par fazil » 20 nov. 2016 19:46

as-tu remis le repertoire courant dans ton classpath?

export $CLASSPATH=.

il faut aussi tuer le processus utilisant le même port que RMI

tape la commande:
lsof -i :1099
récupere le PID du processus et tue le processus:
kill -9 numero_de_ton_pid

graffion
Messages : 626
Inscription : 21 juin 2005 14:05

Re: TP05 - RMI RemoteException - java.lang.ClassNotFoundExce

Message par graffion » 20 nov. 2016 20:16

Bonjour,

Voir la première réponse (le 14 Nov 2016 12:25) à ce post
http://deptmedia.cnam.fr/phpBB3/viewtop ... 27&t=10935

Agnès
Messages : 4
Inscription : 20 nov. 2016 16:48

Re: TP05 - RMI RemoteException - java.lang.ClassNotFoundExce

Message par Agnès » 20 nov. 2016 21:30

Merci beaucoup,
vos réponses m'ont beaucoup aidé.

J'avais effectivement un problème avec le CLASSPATH en rapport avec le fait de mettre mon repertoire courant dans le CLASSPATH, comme "fazil" me l'a suggérer.

j'ai bien compris à présent.

j'ai utilisé export CLASSPATH=.

pour la fenêtre 1 par contre étant sur Mac, j'ai juste inscris dans ma console rmiregistry et ça fonctionne parfaitement

Very Helpful :-)

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité