viernes, 19 de abril de 2013

Apache Tomcat: Instalación y despliegue de WebServices con NetBeans


Con las miras puestas en montar una aplicación móvil que haga uso de servicios web, en el día de hoy explicaré un poco como trabajar con el servidor Apache Tomcat.

Es muy importante tener presente que lo que vimos en el post anterior es como montar un servidor web Apache, cosa que no tiene nada que ver con lo que vamos a hacer ahora: montar un Apache Tomcat, el cual nos permitirá ejecutar el contenido dinámico de algunas páginas, ya Tomcat es un contenedor de servlets y Apache por sí solo no puede.

Descarga e instalación

Instalarlo es tan simple como obtener la versión que queremos de la web http://tomcat.apache.org/download-70.cgi y descomprimirlo en el directorio que necesitemos, como por ejemplo C:\apache-tomcat-7.0.39.




Configuración en NetBeans 7.x

A continuación, probaremos a configurar nuestro servidor Apache Tomcat en NetBeans. Para ello, abriremos nuestro NetBeans y vamos a la pestaña Services. Si desplegamos Servers, podremos ver que solo tenemos instalado GlassFish. Para añadir nuestro Tomcat, pulsaremos con el botón derecho sobre servers y Add Server.



En el asistente seleccionaremos Tomcat



Buscaremos el directorio de Tomcat (C:\apache-tomcat-7.0.39) e indicaremos el usuario admin y la password welcome1 (marcar la casilla create).



Esto nos creará nuestro nodo Tomcat en Servers y con el botón derecho sobre él, podremos arrancarlo y pararlo.



Por regla general, nuestro servidor se arrancará en el puerto 8080, por lo que para consultarlo, simplemente tenemos que ir a la web http://localhost:8080.



Desplegar desde NetBeans

Para desplegar vamos a hacerlo en base al ejemplo que creamos en su momento en el post JAVA: Crear un servicio web básico con NetBeans 7.x.

Con nuestro proyecto abierto, iremos a sus propiedades (botón derecho sobre demoJavaWS y propiedades). Se nos abrirá una nueva ventana y seleccionaremos Run en su lateral izquierdo. 



En Server seleccionaremos Apache Tomcat y salvaremos.




Con esto, simplemente indicaremos deploy, y se nos desplegará el despliegue en nuestro servidor Tomcat. Esto lo podremos consultar en la pestaña Servers al desplegar el árbol:



Configuración de usuario de administración de Tomcat

Para asegurarnos permisos con nuestro usuario admin que hemos creado desde NetBeans, abriremos el archivo C:\apache-tomcat-7.0.39\conf\ tomcat-users.xml y y nuestro tag user lo dejaremos así:

<user password="welcome1" roles="tomcat,manager-gui,manager-script,manager-jmx,manager-status,admin" username="admin"/>

Guardaremos y reniciaremos Tomcat, y ahora podremos entrar en la web de administración http://localhost:8080/manager/html



Servicios web con Tomcat y NetBeans

Todo parece ir pero pero, no obstante, cuando intentamos acceder a nuestro servicio web desplegado (WSDemo) nos dice que no podemos:



Y esto se debe a que nos falta algo para que Tomcat entienda a la clase que queremos.

Para ver que nos falta nos crearemos un nuevo proyecto web al que llamaremos demoTomcatWS para Tomcat.





Por defecto nos abre el index.jsp, y aprovecharemos para cambiarlo:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>demoTomcatWS Page</title>
    </head>
    <body>
        <h1>Estas accediendo a demoTomcatWS en Tomcat</h1>
    </body>
</html>


Y añadiremos un servicio web MiWS:



Al aceptar nos preguntará:



Y responderemos que , creándonos todo lo necesario para que lo entienda:



Tras esto, desplegaremos y veremos los resultados desde la web de administración.







En código del proyecto para NetBeans lo podéis descargar aquí.