## Compilar y Ejecutar la Aplicación Hello World

Esta sección muestra cómo compilar y ejecutar los programas servidor y cliente, que juntos forman la aplicación "Hello World".

### Compilar la Aplicación Cliente

1. Compilamos HelloClient.java:

   >     javac HelloClient.java HelloApp\*.java

2. Corregimos cualquier error de nuestro fichero y recompilamos si es necesario.
3. Veremos el fichero HelloClient.class en el directorio del proyecto.

### Compilar el Servidor

1. Compilar HelloServer.java:

   >     javac HelloServer.java HelloApp\*.java

2. Corregimos cualquier error de nuestro fichero y recompilamos si es necesario.
3. Deberiamos ver los ficheros HelloServer.class y HelloServant.class .

### Ejecutar la aplicación Cliente-Servidor

1. Desde el Prompt de MD-DOS (en Widnows) o el shell de comandos (en UNIX) arrancamos el servidor de nombres de Java IDL:

   >     tnameserv -ORBInitialPort nameserverport

   Observa que nameserverport es el puerto en el que queremos que funcione el servidor. So no lo especificamos, se elegirá por defecto el puerto 900. También nota, si usas software Solaris, que deberias empezar a arrancar proceso en un puerto inferior al 1024. Por esta razón, recomendamos que uses un puerto mayor o igual a 1024.
2. Desde un segundo prompt o shell, arrancamos el servidor Hello:

   >     java HelloServer -ORBInitialHost nameserverhost
   >          -ORBInitialPort nameserverport

   Observa que nameserverhost es el nombre del host en el que se está ejecutando el servidor de nombres IDL. Podemos omitir -ORBInitialHost nameserverhost si el servidor de nombres se está ejecutando en el mismo host que el servidor Hello. Podemos dejar en blanco -ORBInitialPort nameserverport si el servidor de nombres se está ejecutando en el puerto por defecto.
3. Desde un tercer prompt del shell, ejecutamos la aplicación cliente Hello:

   >     java HelloClient -ORBInitialHost nameserverhost
   >          -ORBInitialPort nameserverport

   Observa que nameserverhost es el nombre del host en el que se está ejecutando el servidor de nombres IDL. Podemos omitir -ORBInitialHost nameserverhost si el servidor de nombres se está ejecutando en el mismo host que el servidor Hello. Podemos dejar en blanco -ORBInitialPort nameserverport si el servidor de nombres se está ejecutando en el puerto por defecto.
4. El cliente imprime el string del servidor en la línea de comandos:

   >     Hello world!!

Debemos acordarnos de parar los procesos tnameserv y HelloServer despúes de que el cliente retorne satisfactoriamente.

### Resolución de Problemas

> Specifying ORB Initial Port
>   El puerto inicial por defecto del ORB es el 900. Si lo prefieres, puedes omitir la especificación del puerto si arrancas el servidor de nombres en el puerto 900. Si usas software Solaris, debes comenzar a arrancar proceso por debajo del puerto 1024. Recuerda salir del acceso raíz antes de continuar con el tutor si has elegido este puerto para tu servidor de nombres.
> Class Definition Not Found Error
>   Si el compilador Java (javac) lanza un NoClassDefFoundError, intenta usar la opción -cp (classpath) en la línea de comandos cuando compiles los ficheros fuente.

>   >     javac -cp . *.java HelloApp\*.java

Ozito