Java RMI Server

Iniciado por Link_OOT, 13 Febrero 2013, 01:28 AM

0 Miembros y 1 Visitante están viendo este tema.

Link_OOT

Hola a todos, os escribo porque estoy desarrollando una aplicación de escritorio, que remotamente se conecta a un servidor (también Java) que se conecta a una base de datos MySQL. Desde eclipse todo funciona bien, pero a la hora de exportar el proyecto del servidor, no puedo hacer que se ejecute y el rmiregistry pone la siguiente excepción:


Exception dispatching call to [0:0:0, 0] in thread "RMI TCP Connection(2)-192.168.0.10" at Wed Feb 13 01:26:11 CET 2013:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: model.ClaseAgrupadora_Stub
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:553)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.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: model.ClaseAgrupadora_Stub
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.loadClass(LoaderHandler.java:453)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:184)
at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637)
at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:264)
at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:216)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1593)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1514)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1750)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
... 13 more


Si lanzo el servidor desde eclipse y la aplicación de escritorio desde un jar, si funciona bien. ¿Como hago para que funcione el servidor desde el jar generado?

Gracias

1mpuls0

192.168.0.10 es la ip del servidor?.

desactiva el firewall en ocasiones no deja que se conecte debido a eso.
tienes instalado  SecurityManager del lado del cliente?.

Saludos.
abc

Link_OOT

Si, la IP que indica es la del servidor. Lo de desactivar el firewall ya lo hice y tampoco funcionó.

No tengo instalado el SecurityManager, pero si fuera por eso me daría error cuando el cliente intentara conectarse, no al arrancar el server.

Gracias!

1mpuls0

Cuando exportas tu proyecto del servidor tambien se van las librerías que utilizas?.

Supongo que generas un ejecutable (jar) para que el usuario inicie la aplicación?, bien entonces se me ocurre que copies tu proyecto (final), es decir tu .jar y librerías necesarias pero dentro del mismo servidor (en otro directorio x) y debe de funcionar, si no... es que algo interno está mal y mucho menos te va a funcionar en un cliente.

Saludos.
abc