Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Prob RMI : ClassCastException sur le Naming.lookup()

6 views
Skip to first unread message

Mat

unread,
Jun 5, 2003, 6:03:58 AM6/5/03
to
Bonjour tout le monde,


j'ai un petit soucis avec mon rmi client ....
Mon server se lance correctement mais je n'arrive pas a y acceder avec
le client...

voici l'erreur qu'il me lance :


java.lang.ClassCastException
at sun.rmi.registry.RegistryImpl.lookup(RegistryImpl.java:104)
at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:342)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:207)
at sun.rmi.transport.Transport$1.run(Transport.java:148)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:536)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:350)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Naming.java:84)

Pourtant je suis sur d'avoir bien mis le bon nom de server puisse que
cette version marche sous la machine d'un collegue, correctement ...


Je pense que c'est une question de classpath ou de path ...

toutes suggestions sont le bienvenue ...

merci


PS: Le jdk pour le client et le server est le meme ... ils sont lances
tous les deux sur la meme machine ....

Vincent

unread,
Jun 6, 2003, 6:05:56 AM6/6/03
to
rgyo...@free.fr (Mat) wrote in message news:<a9598c86.03060...@posting.google.com>...

la ClassCastException se produit quand on tente faire une conversion
de type incorrecte

exemple:

Object obj;
Integer nb;
String str;

nb= new Integer();
obj = nb; (Integer --> Object, OK)

nb = (Integer)obj; (Object-->Integer, ne marche que si obj contient en
fait un integer comme cest le cas, donc OK)

str = (String)obj; (Object-->String, ne marche que si obj contient en
fait une string ça n'est pas la cas, donc ClassCastException)


Tu dois avoir le même genre de problème...

Par contre en RMI je crois qu'il éxiste qq chose d'un peu plus subtile
car l'objet qui arrive côté client est en fait une instance
d'interface (c'est pas logique comme définition, mais je crois quand
même que c'est ça).

En gros

côté serveur:

interface iDist
{
...
}

class cDist implements iDist
{
...
}

Naming.bind(new cDist(), "toto")

côté client:

//ça c'est ok
iDist obj = (iDist)Naming.lookup("toto");

//ça je suis pas sûr que ça ne fasse pas une ClassCastException
cDist obj2 = (cDist)Naming.lookup("toto");

Sinon c'est un truc genre ce que j'ai écrit au début, mais avec un
bind et un lookup entre les deux...

0 new messages