/ / Problemas al descargar la clase de código auxiliar del servidor al cliente - RMI de Java - java, excepción, permisos, cliente, rmi

Problemas al descargar la clase Stub del servidor al Cliente - Java RMI - java, excepción, permisos, cliente, rmi

Estoy teniendo problemas con la ejecución de mi HelloWorldAplicación Java RMI. Tengo el servidor, la clase remota y la interfaz remota en una computadora y un cliente y una interfaz remota en otra. El servidor y el registro funcionan bien. Cuando intento ejecutar el cliente, recibo este error:

Excepción de Client1: java.rmi.UnmarshalException: error que devuelve la señal; excepción anidada es: java.lang.ClassNotFoundException: Remote_Stub (sin administrador de seguridad: cargador de clases RMI deshabilitado)

Noté que si tengo el archivo Remote_Stub.class en el mismo directorio que el cliente, todo funciona bien. Así que me di cuenta de que mi problema es descargar el código auxiliar del servidor al cliente.

No estoy muy seguro de por qué esto me está dando estoerror o no, pero después de investigar un poco, creo que tiene algo que ver con la seguridad, ya que no tengo permiso para descargar el archivo de una computadora a la otra (porque dice "no hay administrador de seguridad"). ¿Alguien sabe como podría solucionar este problema? ¿O cómo podría establecer el permiso?

¡¡Gracias!! Micheal

Respuestas

0 para la respuesta № 1

Su servidor necesita establecer una política de seguridad. Necesitas una propiedad JVM como:

-Djava.security.policy=/path/to/myserver.policy

Donde myserver.policy es un archivo que tiene las políticas de seguridad de su servidor, por ejemplo:

grant {
permission java.security.AllPermission "", "";
};

En una nota relacionada, no soy personalmente un gran fande RMI porque me ha dado mucha información en el pasado sobre la forma en que trata el control de versiones de clase entre el servidor y los clientes, y el hecho de que es específico de Java, por lo que limita la escritura de sus clientes en Java. Si tiene la flexibilidad de elegir una tecnología cliente-servidor diferente, debería echar un vistazo a SOAP (AXIS2 no es malo) o los servicios REST (Restlet parece bastante prometedor). Esta publicación puede ayudarte con los pros y los contras:

http://michaeldehaan.net/2008/07/17/xmlrpc-vs-rest-vs-soap-vs-all-your-rpc-options/


0 para la respuesta № 2

http://download.oracle.com/javase/tutorial/rmi/client.html

Mira eso. Indica claramente cómo crear una instancia de SecurityManager en su cliente como primer paso para asegurarse de que se descarguen los apéndices.


0 para la respuesta № 3

No necesita talones del JDK 1.5. Consulte la clase Javadoc para UnicastRemoteObject.