Java, Servlets & JSP

Integración de Apache Tomcat 7 con Eclipse JEE

Una de las primeras tareas que se deben realizar para iniciar con el desarrollo de aplicaciones en Eclipse JEE es agregar un Servidor web, en esta ocasión veremos como integrar Apache Tomcat en este IDE.

Voy a dar por hecho que sabes que es Apache Tomcat y como funciona (iniciarlo, detenerlo, resetearlo, etc); este tutorial no habla sobre eso, sino mas bien sobre como administrarlo con Eclipse. Esta operación parece algo muy básico pero espero a mas de uno lo ayude en su andar con el desarrollo en Java.

Descargar Apache Tomcat 7

A continuación a través de imagenes veremos como descargar Apache tomcat de la pagina oficial hasta tenerlo en nuestro equipo, me decidí por la versión 7 de Apache Tomcat debido a que a mi consideración la versión 8 todavía no es muy estable. Los pasos que debes realizar son lo siguientes:

  1. Visitar la pagina de Apache Tomcat y en la parte izquierda dar clic en el enlace para descargar la versión 7:
    1_visitarWebsite2

  2. Elegir el formato de de descarga del archivo comprimido de Apache Tomcat, en mi caso he elegido el formato .tar.gz, como se observa en la siguientes imágenes:
    2_descargarArchivoComprimido2
    3_saveTomcatFile

  3. Elegir la carpeta donde se desea guardar Apache Tomcat 7:
    4_saveLocationFolder
    Como se puede observar en mi caso lo descargue en /home/gonzasilve/java/ y el archivo descargado se llama apache-tomcat-7.0.65.tar.gz:
    5_archivoTomcat

  4. El siguiente paso es descomprimir el archivo, para esto podemos dar Clic con el botón derecho y elegir la opción Extraer aquí como se observa en la siguiente imagen:
    6_descomprimirTomcat

    La otra forma es escribir el siguiente comando en una terminal:

  5. Listo, con esto ya tenemos los archivos de Apache Tomcat descargados, no debería haber ningún problema para realizar los pasos anteriores y al final tendrás una carpeta con los siguientes archivos:
    7_archivosTomcat

Integrar Apache Tomcat con Eclipse JEE

Otra cosa que olvide mencionar y que también doy por hecho es que supongo que ya tienes Eclipse JEE instalado en tu equipo y si todavía no, te invito que visites este tutorial titulado Ambientar equipo con Eclipse JEE en Lubuntu el cual también escribí recientemente, de hecho este tutorial es la continuación de aquel.

Los pasos que debes seguir para integrar el Apache Tomcat que acabas de descargar son lo siguientes:

Abrir Eclipse, si es la primera vez que lo abres debería aparecer una pantalla de bienvenida como la siguiente:
15_eclipseReady

Al cerrarla nos debe aparecer la vista de la perspectiva por defecto (Java EE):
8_perspectivaDefaultEclipseJEE2

Nos dirigimos al Menú Window -> Show View -> Servers con lo cual se presenta la siguiente pantalla:
10_vistaServers2

Como se puede observar en la imagen anterior, actualmente no hay ningún servidor dado de alta en la vista de servidores de Eclipse; por lo que hay que dar clic en el enlace No servers are available. Click this link to create a new server… para dar de alta Apache Tomcat 7; una vez que damos click se presenta el siguiente cuadro de dialogo:
11_seleccionarTipoServidor

Esta ventana no esta solicitando que elijamos el tipo de servidor que deseamos registrar, si observas con cuidado el apartado Select the server type:, te darás cuenta que por defecto esta seleccionado un servidor HTTP Básico. A nosotros nos interesa instalar Apache Tomcat 7 que descargamos previamente por lo que desplegamos la lista de Apache y elegimos la versión 7:
12_tomcat7Selected

En el cuadro de texto Server’s host name: puedes escribir el nombre del servidor, para este ejemplo dejaremos el nombre por defecto el cual es localhost.

En el cuadro de texto Server name: puedes escribir una etiqueta para el servidor, este nombre aparecerá en la vista de servidores, en mi caso voy a asignarle la etiqueta Servidor Tomcat v7.0.65 en localhost.

Da clic en el botón Next para pasar al siguiente paso del asistente:
13_carpetaDelServidor

Este paso consiste en elegir la carpeta que contiene los archivos del Servidor web, si recuerdas en mi caso lo descargue y descomprimí en /home/gonzasilve/java/apache-tomcat-7.0.65. En la caja de texto Tomcat installation directory: escribiré la ruta local que acabo de mencionar; si deseas puedes utilizar el botón Browse… para explorar por el sistema de archivos local y elegir la carpeta deseada.

El botón Download and Install… permite descargar e instalar directamente desde este asistente los archivos de Apache Tomcat, cosa que no haremos pues nosotros previamente ya los descargamos.

La lista desplegable JRE: permite especificar que Ambiente de Ejecución de Java debe utilizar el servidor web que estamos dando de alta, en mi caso elegí la JRE jdk1.7.0_79. A continuación puedes ver mi configuración:
16_ConfigJVMFill

El botón Installed JREs… permite ver y administrar los Ambientes de Ejecución de Java (JRE, Java Runtime Environment) que tenemos dados de alta en Eclipse, la lista de JREs son los mismos que deberían de aparecer en la lista que esta antes de este botón.

Da clic en el botón Next para pasar al siguiente paso del asistente:
14_desplegarAplicaciones

En este paso debemos elegir que aplicaciones web deseamos desplegar en el servidor que estamos dando de alta; en el panel izquierdo debería aparecer una lista de las aplicaciones web disponibles y compatibles para desplegar en Apache Tomcat 7 y con ayuda de los botones Add, Remove, Add All >>, Remove All >> agregar o quitar dichas aplicaciones web.

Ojo, cada vez que este servidor web se arranque, todas las aplicaciones que agreguemos en este paso se desplegaran y estarán ejecutándose, por lo cual debemos tener cuidado de no agregar demasiadas para no saturar nuestro servidor. En lo personal yo acostumbro agregar solo las que estoy depurando o desarrollando en un momento dado.

Damos Click en el botón Finish para terminar y dar de alta nuestro Servidor Web, el cual debe aparecer en la vista de servidores:
15_newTomcat7Server2

Configurar Apache Tomcat

Una vez que ya dimos de alta a nuestro servidor Tomcat podemos iniciarlo, detenerlo, reiniciarlo y muchas otras cosas desde el IDE Eclipse, vamos a ver como hacer esto pero primero me gustaría mostrarte como configurar algunas cosas que me parecen interesantes como:

  • Crear un usuario para la aplicación administrativa de Apache Tomcat
  • Cambiar el numero de puerto 8080 que trae por defecto Apache Tomcat
  • Configurar el logging de Apache Tomcat
  • Configurar Eclipse para que administre las carpetas originales de Tomcat

Crear un usuario para la aplicación administrativa de Apache Tomcat
Apache Tomcat trae por defecto una aplicación web que sirve para administrar varias cosas, como detener las aplicaciones web, ver el estatus del servidor, desplegar otras aplicaciones, etc. Siempre es bueno contar con varias formas de hacer las cosas ya que sino funciona una podemos intentar con la otra. Es raro pero por defecto Tomcat no trae ningun usuario configurado para acceder a esta aplicacion administrativa (El acceso esta restringido por roles, usuario y password), en otros servidores como Glassfish o Websphere por lo general viene un usuario por defecto pero en este caso no lo hay y es por ello que vamos a dar de alta uno; paraa realizar esto realizamos los siguientes pasos:

  1. Abrir Eclipse
  2. Abrimos la vista de Explorador de proyectos; nos dirigimos al menú Window -> Show View -> Project Explorer
    17_showProjectExplorer2
  3. Dar clic en el icono de la carpeta que se muestra (con forma de un folder) e ir desplegando el arbol:
    18_tomcatUsersFile2

    Con doble click abrir el archivo XML tomcat-users.xml. El contenido de este archivo se muestra a continuacion:

    y justo antes del cierre de la etiqueta

    agregar las siguientes lineas

    Al final el archivo debió quedar así:

    no olvidar cambiar el usuario pepito y el password 12345 por los datos deseados.

  4. Guardar el archivo tomcat-users.xml

Cambiar el numero de puerto 8080 que trae por defecto Apache Tomcat
Por defecto cuando arrancamos Apache Tomcat éste escucha por el puerto 8080 todas las peticiones HTTP. A continuación veremos como cambiar ese puerto por defecto ya que veces es necesario, por ejemplo, para correr dos instancias de Apache Tomcat deben configurarse para escuchar por diferentes puertos, ademas en ambientes productivos debe hacerse por razones de seguridad.

Los pasos que debes seguir para cambiar el puerto 8080 son los siguientes:

  1. Abrir Eclipse
  2. Abrimos la vista de Explorador de proyectos; nos dirigimos al menú Window -> Show View -> Project Explorer
  3. Dar clic en el icono de la carpeta que se muestra (con forma de un folder) e ir desplegando el arbol:
    19_showServerXMLFile
  4. Con doble click abrir el archivo XML server.xml. El contenido de este archivo se muestra a continuacion:

    Este archivo server.xml nos permitirá cambiar el puerto por defecto y cambiar el patrón que usa Apache Tomcat para la bitácora de logging. Sin embargo, vayamos por partes, primero cambiemos el puerto, localiza las siguientes lineas:

    y cambia el parámetro port="8080" por el puerto deseado; por ejemplo ponemos el puerto 8087, como se observa a continuación:

    Cada vez que hacemos una petición de acceso HTTP ( GET, POST, DELETE, etc) a Tomcat, éste guarda en un archivo .txt los siguientes datos en un archivo:

    • La dirección IP del host que hizo la peticion
    • Si es una aplicación con seguridad guarda el usuario
    • la fecha y hora
    • El tipo de petición
    • El código de estado HTTP devuelto (200 ok, 400 Solicitud incorrecta, 401 No autorizado, 404 No encontrado, etc.)
    • La cantidad de datos (en bytes) retornados al cliente que realizo la petición

    Por defecto Tomcat guarda este archivo en la ruta /home/gonzasilve/java/apache-tomcat-7.0.65/logs/localhost_access_log.[FECHA-ACTUAL].txt donde [FECHA-ACTUAL] representa la fecha actual del sistema en el formato AAAA-MM-DD. Como puedes ver, podríamos decir que este archivo es una bitácora de accesos. Recordemos que descargamos Apache Tomcat en /home/gonzasilve/java/apache-tomcat-7.0.65/. Por medio del archivo server.xml podemos cambiar la carpeta donde se guardara ese archivo .txt, el nombre del archivo y el patrón (o layout) que usa para escribir los datos en la bitácora de accesos.

    Por favor localiza las siguientes lineas en el archivo server.xml (están casi hasta el final):

    El parámetro directory="logs" es el nombre de la carpeta donde se creara el archivo de log .txt. Recuerda que esta carpeta es relativa a la carpeta donde descargamos Apache tomcat (/home/gonzasilve/java/apache-tomcat-7.0.65/). En este caso vamos a cambiar la carpeta por otra llamada bitacora (previamente creada). En mi caso voy a colocar el valor bitacora para este parámetro.

    El parámetro prefix="localhost_access_log." es un prefijo para darle nombre al archivo de log .txt. Recuerda, Tomcat agregara [FECHA-ACTUAL] + el contenido del parámetro suffix=".txt". En mi caso voy a colocar el valor localhost_bitacoraAccesos_log. para este parámetro.

    El parámetro

    Es el patrón (o layout) que se utiliza para escribir los datos dentro del archivo de la bitácora, en el patrón los valores %h, %l, %u, %t, %r, %s, %b significan lo siguiente:

    • %h El host que realizo la petición HTTP a Apache Tomcat
    • %u El nombre de usuario, solo en caso de que se estén utilizando sesiones para autenticarse con un usuario y password
    • %t La fecha y hora actual del servidor donde esta Apache Tomcat
    • %r El tipo de petición (GET, POST, DELETE, etc.)
    • %s El código de estado HTTP devuelto (200 ok, 400 Solicitud incorrecta, 401 No autorizado, 404 No encontrado, etc.)
    • %b La cantidad de datos (en bytes) retornados al cliente que realizo la petición

    En mi caso voy a colocar el siguiente valor para este parámetro:

    Al final el archivo debió quedar así:

  5. Guardar el archivo server.xml

Ya para terminar de configurar Apache Tomcat en Eclipse, vamos a configurar Eclipse para que administre las carpetas originales de Tomcat.

Configurar Eclipse para que administre las carpetas originales de Tomcat

Este paso consiste en configurar a Eclipse JEE para que tome el control total de los archivos de Apache Tomcat que descargamos previamente en /home/gonzasilve/java/apache-tomcat-7.0.65/. Bueno, aquí falta explicar algunas cosas; si en este momento arrancamos a Apache Tomcat (desde Eclipse), por defecto Eclipse va a, por decir así, crear una copia de los archivos principales de Apache en la carpeta del espacio de trabajo actual (workspace). Si cuando dimos de alta a apache Tomcat, lo configuramos para que hiciera el despliegue (deploy) de alguna aplicación web, éstas estarán disponibles para utilizarlas.
Sin embargo la aplicación administrativa (de la que hablamos previamente) no estara disponible, ni ninguna de las aplicaciones web localizadas en la carpeta de despliegue del Apache Tomcat que descargamos (en mi caso esta carpeta es /home/gonzasilve/java/apache-tomcat-7.0.65/webapps/).

Para que Eclipse no realice una copia de Apache tomcat, debemos configurarlo para que utilice los archivos originales de Tomcat, y con esto también quedaran desplegadas todas las aplicaciones que tengamos en /home/gonzasilve/java/apache-tomcat-7.0.65/webapps/, incluida la aplicación administrativa.

Realicemos esta configuracion pues:

  • Abrir Eclipse JEE
  • Abrimos la vista de Servidores; nos dirigimos al menú Window -> Show View -> Servers
    9_mostrarVistaServers

  • En la vista Servers dar clic con el botón derecho sobre Apache Tomcat y elegir la opción Properties, se presentara la siguiente ventana:

    Propiedades de Tomcat en Eclipse JEE

    Dar clic primero en el boton Switch Location despues en Apply y por ultimo en OK

  • A continuacion en la vista Servers damos clic con el boton derecho sobre Apache Tomcat y elegimos la opcion Open para abrir la configuracion de Apache tomcat:
    Archivo de propiedades de Tomcat 7

    Para guardar el cambio debemos dar click en el boton Save:
    Boton Guardar de Eclipse

Iniciar Apache Tomcat 7

Lo que sigue a continuacion es arrancar el servidor; lo cual se muestra en las siguientes imagenes:

Iniciar Tomcat7 en Eclipse JEE

Te daras cuenta que acabo de arrancarse Tomcat cuando en la vista Console veas una salida como la siguiente:
Consola Termina Cargar Tomcat

Una vez iniciado Apache Tomcat 7 podemos abrir un navegador como Firefox y escribir la URL: http://localhost:8080/ para ver la herramienta de administracion del servidor; tema que no explicare porque este articulo ya es demasiado grande pero que facilmente puedes encontrar buscando en Google. Si realizaste todo bien, deberia mostrarse una pantalla similar a esta:
Consola de Apache Tomcat 7

Listo, hemos terminado de integrar Apache Tomcat 7 con Eclipse JEE. En futuros tutoriales usare este articulo para recordarte como se configuran estan herramientas de desarrollo java. Hasta la proxima.

Saludos!.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *