¿Por qué la instalación de Tomcat6 requiere la creación de un enlace suave a /usr/share/java?

¿Por qué la instalación de Tomcat6 requiere la creación de un enlace suave a /usr/share/java?

Instalé tomcat6 en lucid siguiendo las instrucciones aquí:https://help.ubuntu.com/10.04/serverguide/C/tomcat.html

(No creé una versión a nivel de instancia; la versión a nivel de sistema estaba bien)

Cuando intenté iniciarlo, apareció el siguiente error en el registro:

java.lang.ClassNotFoundException: org.apache.catalina.startup.Catalina
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:216)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:391)

Esto se resolvió haciendo lo siguiente:

root@...:/var/lib/tomcat6# ln -s /usr/share/java lib

¿Por qué necesitaba hacer esto? ¿Por qué no funciona en la caja? (¿Por qué no está esto en elManual de Ubuntu sobre Tomcat?)

Respuesta1

Instalando Tomcat usando:

sudo apt-get install tomcat6

Debería instalar e iniciar Tomcat como un servicio sin problemas. El servicio se puede iniciar y detener utilizando:

sudo /etc/init.d/tomcat6 start
sudo /etc/init.d/tomcat6 stop

Puede verificar si el servicio se está ejecutando viendo http://localhost:8080/, ya sea usando un navegador o desde la línea de comando:

curl http://localhost:8080/

Si esto no funciona de inmediato, entonces hay algo extraño en cómo está configurada su máquina o en cómo está intentando ejecutar el servicio Tomcat.

Si está intentando ejecutar Tomcat de cualquier otra manera que no sea utilizando el script /etc/init.d/tomcat6, es probable que tenga complicaciones. Hay dos variables ambientales que definen dónde se encuentran la distribución y los archivos de Tomcat; CATALINA_HOME y CATALINA_BASE. Para una instalación básica del paquete, el script init.d terminará configurándolos automáticamente para:

CATALINA_HOME=/usr/share/tomcat6
CATALINA_BASE=/var/lib/tomcat6

Si está intentando ejecutar Tomcat de alguna otra manera, es posible que estas variables no estén configuradas correctamente, lo que podría provocar el error que está describiendo.

El servidor Tomcat empaquetado está diseñado para usarse para ejecutar Tomcat como un servicio en segundo plano en un servidor y, como tal, solo debe iniciarse y detenerse usando el script init.d. Si está intentando ejecutar Tomcat en una máquina de desarrollo (por ejemplo, desde un IDE como Eclipise), encontrará que la forma en que el paquete instala Tomcat no es adecuada y, en su lugar, debería instalar una instancia privada utilizando elinstruccionesen el manual del servidor o pordescargandodirectamente desde el sitio web de Tomcat y extrayéndolo manualmente.

información relacionada