Configuración

Apache Tomcat

A continuación se exponen algunos puntos a considerar sobre la configuración de Apache Tomcat, dando por hecho que ya se tiene una instalación del mismo en $HOME/www/tomcat01/apache-tomcat-8.5.34.

Archivos/directorios importantes

  • bin/: directorio con script o ejecutables. Los archivos con extensión .sh son usados en sistemas operativos basados en Unix (GNU/Linux y Mac OS) mientras que los archivos con extensión .bat en Microsoft Windows.
  • conf/: archivos de configuración.
  • logs/: directorio con archivos de registros (logs) generados durante la ejecución de Apache Tomcat.
  • webapps/: directorio con aplicaciones web. En Apache Tomcat a una aplicación web se le conoce como contexto, de tal forma que cada apliación web es un contexto distinto.
  • bin/catalina.sh: script de shell para iniciar/detener a Apache Tomcat.
  • conf/server.xml: archivo principal de configuración de Apache Tomcat. Uno de los aspectos que se pueden configurar son los puertos TCP y direcciones IP en el que Apache Tomcat operará.

Aceptando conexiones solo de manera local (Loopback)

Por default Apache Tomcat está escuchando en todas las interfaces de red disponibles (:::8080) en el puerto TCP 8080 para el protocolo HTTP. Suponiendo que ya se encuentre en ejecución Apache Tomcat:

alumno@servidor:~/www/tomcat01/apache-tomcat-8.5.34/bin $ netstat -plutn | grep java
tcp        0      0 127.0.0.1:8005          :::*                    LISTEN      7645/java
tcp        0      0 :::8009                 :::*                    LISTEN      7645/java
tcp        0      0 :::8080                 :::*                    LISTEN      7645/java

Para hacer que Apache Tomcat escuche (o atienda solicitudes de conexión) en la interfaz de red loopback (localhost o dirección IP 127.0.0.1) se asigna el valor 127.0.0.1 al atributo address del elemento <Connector> para el protocolo HTTP/1.1 en el archivo conf/server.xml ubicado dentro del directorio de instalación de Apache Tomcat:

<Connector port="9191" protocol="HTTP/1.1"
           address="127.0.0.1"
           connectionTimeout="20000"
           redirectPort="8443" />

IMPORTANTE: cuando edites el archivo conf/server.xml es recomendable que ejecutes el comando sh catalina.sh configtest para validar el archivo de configuración principal. En caso de que al terminar la ejecución del anterior comandos recibas un mensaje similar a Configuration error detected! es indicación de que tienes un error de sintaxis en el archivo conf/server.xml.

Deten a Apache Tomcat si ya está en ejecución e inicialo:

alumno@servidor:~/www/tomcat01/apache-tomcat-8.5.34/bin $ netstat -plutn | grep java
tcp        0      0 127.0.0.1:8080          :::*                    LISTEN      3659/java
tcp        0      0 127.0.0.1:8005          :::*                    LISTEN      3658/java
tcp        0      0 :::8009                 :::*                    LISTEN      3657/java

Configurando los puertos TCP

Suponiendo que se quiera hacer uso de los siguientes puertos TCP:

se realizan los siguientes pasos:

  1. Edita el archivo conf/server.xml:

    • Localiza la línea <Connector port="8080" protocol="HTTP/1.1" (línea 70 apro.), cambia el valor del atributo port de 8080 a 9191.
    • Localiza la línea <Server port="8005" shutdown="SHUTDOWN"> (línea 20 aprox.), cambia el valor del atributo port de 8005 a 9292.
    • Localiza la línea <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> (línea 115 aprox.), cambia el valor del atributo port de 8009 a 9393.

    IMPORTANTE: cuando edites el archivo conf/server.xml es recomendable que ejecutes el comando sh catalina.sh configtest para validar el archivo de configuración principal. En caso de que al terminar la ejecución del anterior comandos recibas un mensaje similar a Configuration error detected! es indicación de que tienes un error de sintaxis en el archivo conf/server.xml.

    Deten a Apache Tomcat si ya está en ejecución.

  2. Inicia a Apache Tomcat:

     alumno@servidor:~/www/tomcat01/apache-tomcat-8.5.34/bin $ sh catalina.sh start
     Using CATALINA_BASE:   /home/alumno/www/tomcat01/apache-tomcat-8.5.34
     Using CATALINA_HOME:   /home/alumno/www/tomcat01/apache-tomcat-8.5.34
     Using CATALINA_TMPDIR: /home/alumno/www/tomcat01/apache-tomcat-8.5.34/temp
     Using JRE_HOME:        /usr/lib64/java
     Using CLASSPATH:       /home/alumno/www/tomcat01/apache-tomcat-8.5.34/bin/bootstrap.jar:
                            /home/alumno/www/tomcat01/apache-tomcat-8.5.34/bin/tomcat-juli.jar
     Tomcat started.
    
  3. Verifica la actual ejecución de Apache Tomcat:

     alumno@servidor:~/www/tomcat01/apache-tomcat-8.5.34/bin $ netstat -plutn | grep java
     tcp        0      0 :::9191                 :::*                    LISTEN      5988/java
     tcp        0      0 127.0.0.1:9292          :::*                    LISTEN      5988/java
     tcp        0      0 :::9393                 :::*                    LISTEN      5988/java
    
  4. Accede a http://127.0.0.1:9191 para verificar la ejecución de Apache Tomcat.

Configurando Manager App

Apache Tomcat cuenta con una aplicación web de administración (Manager App) con la cual podrás administrar ciertos aspectos de la instancia de Apache Tomcat en ejecución.

  1. Edita el archivo conf/tomcat-users.xml, agrega <user username="alumno" password="12345" roles="standard,manager-gui" /> una línea antes de la etiqueta de cierre </tomcat-users>.

  2. Deten a Apache Tomcat e inicialo una vez más.

  3. Accede con el navegador web a http://127.0.0.1:9191/manager (suponiendo que el puerto TCP 91l91 ha sido configurado previamente) y ante la ventana emergente ingresa los datos alumno y 12345 como User Name y Password respectivamente, configurados en el paso 1.

    images/02.png

Eclipse IDE for Java EE Developers

Los siguientes pasos abordan la configuración del IDE Eclipse para que mediante él se administre la configuración, el inicio y detención de una instancia de Apache Tomcat.

OBSERVACIONES:

  • Es posible tener varias instancias de Apache Tomcat instaladas y en ejecución al mismo tiempo. Para esto es cuestión de administrar los directorios en donde son instalados así como el puerto TCP a usar.
  • Eclipse puede ayudarnos a trabajar de una forma más comoda con varias instancias de Apache Tomcat así como distintos proyectos o aplicaciones web.
  • Al momento de iniciar a Eclipse se te cuestiona por el workspace. Un workspace es un directorio donde residirán tus proyectos. Puedes acceder a Window > Preferences > General > Startup and Shutdown > Workspaces para configurar los workspaces. Sugiero definir el directorio $HOME/www/eclipse/jee como Workspace, crealo de ser necesario.

Apache Tomcat

Crea el directorio $HOME/www/eclipse/tomcat y en él instala a Apache Tomcat:

alumno@servidor:~ $ mkdir $HOME/www/eclipse/tomcat
alumno@servidor:~ $ cd $HOME/www/eclipse/tomcat
alumno@servidor:~/www/eclipse/tomcat $ wget -c http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.zip
alumno@servidor:~/www/eclipse/tomcat $ unzip apache-tomcat-8.5.34.zip

En este caso el directorio de instalación de Apache Tomcat es $HOME/www/eclipse/tomcat/apache-tomcat-8.5.34 que le será indicado a Eclipse en los siguientes pasos.

OBSERVACIÓN: en el directorio $HOME/www/eclipse/tomcat/ podrás mantener tantas versiones o instancias de Apache Tomcat como requieras.

Eclipse

  1. Accede a Window > Preferences > Server > Runtime Environments y da click al botón Add.

  2. Ante la ventana New Server Runtime Environment, selecciona bajo el nodo Apache la opción Apache Tomcat v8.5, desactiva la opción Create a new local server y da click al botón Next.

  3. Ante la ventana Tomcat Server ingresa apache-tomcat-8.5.34 en el campo Name y en el campo Tomcat installation directory el directorio de instalación de Apache Tomcat, en este caso $HOME/www/eclipse/tomcat/apache-tomcat-8.5.34, y da click al botón Finish. Regresarás a la ventana Preferences, da click al botón OK para cerrarla.

  4. Accede a Window > Show Views > Servers, lo que resaltará a la pestaña con título Servers. Da click sobre No servers are available. Click this link to create a new server.

  5. Ante la ventana Define a New Server selecciona bajo el nodo Apache la opción Apache Tomcat v8.5, rellena los campos con la siguiente información:

    • Server's host name: localhost
    • Server name: apache-tomcat-8.5.34
    • Server runtime environment: apache-tomcat-8.5.34

    Observa que los datos dependen de lo hecho en el paso 3.

  6. Accede a Window > Show Views > Servers, da click derecho sobre el servidor recien creado apache-tomcat-8.5.34 y accede a Properties.

  7. Ante la ventana Properties for apache-tomcat-8.5.34 da click una sola vez sobre el botón Switch Location a un costado de Location, da click al botón Apply y finalmente al botón OK para cerrar la ventana.

  8. Accede a Window > Show Views > Project Explorer y abre, dando doble click izquierdo, el nodo Servers > apache-tomcat-8.5.34.server, selecciona la opción Use Tomcat installation (takes control of Tomcat installation), cierra la pestaña, se te preguntará si quieres guardar los cambios, da click en YES.

    Observación: en esta misma sección puede llevarse a cabo la modificado el puerto TCP usado por Apache Tomcat 8080 (default).

  9. Inicia a Apache Tomcat accediendo a Window > Show Views > Servers, da click derecho sobre el servidor apache-tomcat-8.5.34 y da click sobre Start.

    Recordatorio: Apache Tomcat por default está configurado para ocupar el puerto TCP 8080 por lo que no debe existir algún otro proceso ocupando dicho puerto TCP.

  10. Accede con el navegador web a http://127.0.0.1:8080 y obtendrás el mensaje If you're seeing this, you've successfully installed Tomcat. Congratulations! lo cual se interpretará como la correcta ejecución de Apache Tomcat por parte de Eclipse.

  11. Deten a Apache Tomcat accediendo a Window > Show Views > Servers, da click derecho sobre el servidor apache-tomcat-8.5.34 y selecciona Stop.

OBSERVACIONES:

  • El paso 9 realizado sería similar a la ejecución del comando sh catalina.sh start en la línea de comandos.
  • El paso 11 realizado sería similar a la ejecución del comando sh catalina.sh stop en la línea de comandos.

Lecturas