Una buena práctica tras realizar cambios en cualquier servicio, ya sea Tomcat en este caso o un Apache, Nginx, Postfix, etc. es ejecutar antes de reiniciar o recargar el servicio es verificar que la configuración establecida es correcta y no hay fallos de sintaxis, propiedades o atributos.
En el caso de Tomcat, dentro de $HOME
del servicio hay un script que verifica que la sintaxis de los ficheros de configuración es correcta y que el servicio arrancará correctamente. Hace una especie de dry-run simulando el arranque de Tomcat.
Para sistemas GNU/Linux, encontraréis el script en la ruta $CATALINA_HOME/bin/configtest.sh
y en Windows en $CATALINA_HOME/bin/configtest.bat
.
A continuación podéis ver un ejemplo de la salida que muestra el script en Linux, como veis, /opt/apache-tomcat-7.0.93
es la ruta de $CATALINA_HOME
:
[root@foo bin]# ./configtest.sh Using CATALINA_BASE: /opt/apache-tomcat-7.0.93 Using CATALINA_HOME: /opt/apache-tomcat-7.0.93 Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.93/temp Using JRE_HOME: /opt/java/jdk1.6.0_211/jre Using CLASSPATH: /opt/apache-tomcat-7.0.93/bin/bootstrap.jar:/opt/apache-tomcat-7.0.93/bin/tomcat-juli.jar Using CATALINA_PID: /opt/apache-tomcat-7.0.93/run/catalina.pid 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: Server version: Apache Tomcat/7.0.93 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: Server built: Feb 16 2019 17:13:17 UTC 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: Server number: 7.0.93.0 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: OS Name: Linux 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: OS Version: 3.10.0-957.10.1.el7.x86_64 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: Architecture: amd64 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: Java Home: /opt/java/jdk1.6.0_211/jre 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: JVM Version: 1.6.0_211-b11 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: JVM Vendor: Sun Microsystems Inc. 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: CATALINA_BASE: /opt/apache-tomcat-7.0.93 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: CATALINA_HOME: /opt/apache-tomcat-7.0.93 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Dignore.endorsed.dirs= 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Dcatalina.base=/opt/apache-tomcat-7.0.93 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Dcatalina.home=/opt/apache-tomcat-7.0.93 26-Apr-2019 09:21:20 org.apache.catalina.startup.VersionLoggerListener log INFO: Command line argument: -Djava.io.tmpdir=/opt/apache-tomcat-7.0.93/temp 26-Apr-2019 09:21:20 org.apache.catalina.core.AprLifecycleListener lifecycleEvent INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /opt/java/jdk1.6.0_211/jre/lib/amd64/server:/opt/java/jdk1.6.0_211/jre/lib/amd64:/opt/java/jdk1.6.0_211/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib 26-Apr-2019 09:21:21 org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["http-bio-8080"] 26-Apr-2019 09:21:21 org.apache.coyote.AbstractProtocol init INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 26-Apr-2019 09:21:21 org.apache.catalina.startup.Catalina load INFO: Initialization processed in 1088 ms
Todo lo que aparece son etiquetas INFO
, así que no hay ningún fallo en esta configuración, deberíamos prestar especial atención, por ejemplo, a etiquetas ERROR, WARNING, SEVERE
.