Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Link_OOT en 13 Febrero 2013, 01:28 am



Título: Java RMI Server
Publicado por: Link_OOT en 13 Febrero 2013, 01:28 am
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:
Código:

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


Título: Re: Java RMI Server
Publicado por: 1mpuls0 en 19 Febrero 2013, 22:43 pm
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.


Título: Re: Java RMI Server
Publicado por: Link_OOT en 24 Febrero 2013, 21:14 pm
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!


Título: Re: Java RMI Server
Publicado por: 1mpuls0 en 26 Febrero 2013, 00:06 am
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.