RMI - Compilación y ejecución
El código que he utilizado para mis pruebas con RMI es el que está en el tutorial de Java de Sun en la sección correspondiente al Trail: RMI.
El primer punto a tener en cuenta es que no conviene utilizar rutas con espacios en blanco. Si estamos trabajando con una ruta como por ejemplo "D:\Documents and settings\e88815a\My documents\Proyectos\PruebasRMI", es mejor que copiemos todo a "D:\Proyectos\PruebasRMI".
Empezamos cambiándonos al directorio en el que está el proyecto.
cd D:\Proyectos\PruebasRMI\src
Compilamos las clases del interfaz y generamos un jar con las clases compiladas.
javac compute\Compute.java
javac compute\Task.java
jar cvf compute.jar compute\*.class
Compilamos la implementación del servidor.
set CLASSPATH=D:\Proyectos\PruebasRMI\src;D:\Proyectos\PruebasRMI\src\compute.jar
javac engine\ComputeEngine.java
Generamos el stub correspondiente a la clase creada (el rmic solo crea el stup no el skeleton).
rmic -d . engine.computeEngine
Compilamos el cliente.
javac client\ComputePi.java
javac client\Pi.java
Ejecutamos desde una nueva ventana en la que no esté definido el CLASSPATH el registro de RMI.
cd c:\jdk1.5.0_03\bin\
rmiregistry
Necesitamos tener el fichero java.policy con la información que se define en el tutorial en la ruta de las aplicaciones que vamos a ejecutar (D:\Proyectos\PruebasRMI\src).
Desde otra ventana ejecutamos el servidor que hemos creado.
java -Djava.rmi.server.codebase=file:/D:\Proyectos\PruebasRMI\src/ -Djava.rmi.server.hostname=localhost -Djava.security.policy=java.policy engine.ComputeEngine
Nos tiene que mostrar el mensaje:
ComputeEngine bound
Y desde una última ventana ejecutamos el cliente.
set CLASSPATH=D:\Proyectos\PruebasRMI\src;D:\Proyectos\PruebasRMI\compute.jar
java -Djava.rmi.server.codebase=file:/D:\Proyectos\PruebasRMI\src/ -Djava.security.policy=java.policy client.ComputePi localhost 20
Cuya salida será el valor de PI.
3.14159265358979323846
Si sale el valor de PI es que ha funcionado y desde el cliente se ha invocado el método de RMI correspondiente obteniendo el resultado adecuado.

0 Comments:
Publicar un comentario
<< Home