martes, 8 de junio de 2010

Estructura de un WAR. Web Applications y Web Archives


¿Qué es un WAR?

WAR es el acrónimo de Web ARchive. Es una especificación que nos dice cómo hay que empaquetar una Aplicación Web para que pueda ser ejecutada por los servidores de aplicaciones. Y una Aplicación Web es el conjunto de los recursos que son necesarios para que el servidor de aplicaciones haga lo que queremos que haga. En esta colección se incluyen las páginas HTML, JSP, imágenes, clases java, librerías, applets... todo lo que necesita nuestra aplicación.

Estructura del WAR

Para que una Aplicación Web sea portable, necesitamos como mínimo que los servidores que la ejecuten encuentren todo lo necesario para que funcione, y esto sólo lo podemos conseguir si todos los servidores buscan las cosas en el mismo sitio. Hay cuatro tipos de archivos que los servidores van a buscar:
- Clases java
- Librerías
- Recursos html
- Un archivo especial, el descriptor del despliegue (Deployment Descriptor) de la aplicación

Cada uno de estos tipos de archivo tiene su sitio en el archivo WAR:
/WEB-INF/classes contiene las clases java
/WEB-INF/lib contiene las librerías java
/WEB-INF/web.xml es el descriptor de despliegue
...y el resto de recursos (html, jsp, imágenes, etrc) se ubican en el raíz. No hay una estructura definida para estos archivos. Podemos ubicar estos archivos como queramos, aunque un poco de organización no viene mal. Pero esto entra en el terreno de las buenas prácticas más que en el de la especificación de los archivos WAR. Como curiosidad, el class loader de la aplicación debería devolver un NOT FOUND cuando intentemos buscar un recurso web en el directorio WEB-INF.

En la próxima entrada veremos el deployment descriptor (web.xml) con más detalle.



jueves, 3 de junio de 2010

Instalar Java


Lo primero que necesitamos es poner a punto la máquina. Y si vamos a utilizar Struts o Spring, tenemos que comenzar instalando el SDK de Java. Muchos de los que os hayáis acercado hasta aquí pensaréis que esta entrada no es necesaria, ya que para utilizar Struts o Spring son necesarios unos conocimentos básicos de la plataforma Java, y no os falta razón. Pero quiero empezar desde el principio, así que ahí va la instalación de Java, aunque estoy seguro que este post será uno de los menos leídos del blog.

Nos bajamos el JDK de la página de SUN, si solo fuéramos a ejecutar aplicaciones Java nos bastaría con el entorno de ejecución (Java Runtime Environment, JRE), pero como vamos a querer desarrollar necesitamos el Kit de Desarrollo (Java Development Kit, JDK), en el que viene incluido también el JRE. Si tenemos especificaciones de versión del JDK, tendremos que buscar esa versión en la página de Sun. Aunque la estructura de la web de Sun puede cambiar, actualmente las versiones anteriores están en http://java.sun.com/javase/downloads/previous.jsp. Y si no tenemos especificaciones, con la última versión de la JDK deberia bastarnos. El JDK actual es el «JDK 6 update 20», y el enlace a la página de descarga, http://java.sun.com/javase/downloads/widget/jdk6.jsp. Nos pide un usuario y un password, pero podemos evitarlo pinchando en «Skip this step».

La instalación es sencilla, sólo debemos ir dando al next - next - next para completarla, y una vez terminada ya tenemos listo nuestro equipo para ejecutar programas java. No hay cambios visibles en el equipo, apenas un icono más en el Panel de Control y . Lo que sí podremos necesitar es la ubicación de la instalación, que por defecto es, para el JDK 1.6.0 update 20:

C:\Archivos de Programa\Java\jdk1.6.0_20

Y para el JRE 6:

C:\Archivos de Programa\Java\jre6

Ya estamos listos para instalar más cosas...