Foros del Web » Programación para mayores de 30 ;) » Java »

Problemas con RMI

Estas en el tema de Problemas con RMI en el foro de Java en Foros del Web. Hola, estoy haciendo un programa en red que funciona mediante RMI, el problema surge al ejecutarlo ya que cuando se ejecuta un método no te ...
  #1 (permalink)  
Antiguo 09/01/2011, 03:21
 
Fecha de Ingreso: diciembre-2010
Mensajes: 10
Antigüedad: 13 años, 10 meses
Puntos: 0
Problemas con RMI

Hola, estoy haciendo un programa en red que funciona mediante RMI, el problema surge al ejecutarlo ya que cuando se ejecuta un método no te devuelve lo que tenía que devolver sino un $Proxy0 y se produce el fallo al intentar hacer un casting. Os pongo el error completo haber si sabeis de que se puede tratar:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: $Proxy0 cannot be cast to ClienteChat
at ClienteChat.enviar_invitacion(ClienteChat.java:99)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknow n Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages( Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandl er.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandl er.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run Task(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (Unknown Source)
at java.lang.Thread.run(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.exceptionReceiv edFromServer(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.executeCall(Unk nown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invo keRemoteMethod(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invo ke(Unknown Source)
at $Proxy1.enviar_invitacion(Unknown Source)
at ServidorChat.enviar_invitacion(ServidorChat.java:3 9)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknow n Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages( Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandl er.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandl er.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run Task(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (Unknown Source)
at java.lang.Thread.run(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.exceptionReceiv edFromServer(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.executeCall(Unk nown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invo keRemoteMethod(Unknown Source)
at java.rmi.server.RemoteObjectInvocationHandler.invo ke(Unknown Source)
at $Proxy1.enviar_invitacion(Unknown Source)
at ZonaEnvio.actionPerformed(ZonaEnvio.java:77)
at javax.swing.AbstractButton.fireActionPerformed(Unk nown Source)
at javax.swing.AbstractButton$Handler.actionPerformed (Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed (Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent( Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(U nknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unkno wn Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(U nknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Muchas gracias!
  #2 (permalink)  
Antiguo 09/01/2011, 05:23
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Problemas con RMI

ayudaría el trozo de código donde intentas hacer el cast (líneas anteriores también), ver cómo registras el objeto en cuestión, etc, etc.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 09/01/2011, 05:33
 
Fecha de Ingreso: diciembre-2010
Mensajes: 10
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problemas con RMI

Este es el método donde da el fallo:

public ClienteChatI enviar_invitacion(String nick1, ClienteChatI cchat1) throws RemoteException
{
Object[] opciones = {"Si", "No"};
int n = JOptionPane.showOptionDialog(Contexto.interfaz, "¿Quieres iniciar un juego con "+nick1+"?", "Invitación de juego", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, opciones, opciones[1]);
if(n==0)
{
Concurrencia.cchatJugRival=(ClienteChat) cchat1;
Concurrencia.jugRival=nick1;
//HAY QUE LANZAR LA VENTANA DEL JUEGO TAMBIEN AQUI
IguJuego interfazJuego = new IguJuego("Hundir la flota");
interfazJuego.setSize(600,400);
interfazJuego.setVisible(true);
return this;
}
else return null;
}
  #4 (permalink)  
Antiguo 09/01/2011, 12:17
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Problemas con RMI

El parámetro que estás recibiendo es ClienteChatI con una I al final.... ¿tiene algo que ver esa clase con ClienteChat, sin I al final? ¿Es padre de ClienteChat?

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: rmi
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:15.