Por que a instalação do Tomcat6 requer a criação de um link virtual para/usr/share/java?

Por que a instalação do Tomcat6 requer a criação de um link virtual para/usr/share/java?

Instalei o Tomcat6 no Lucid usando as instruções aqui:https://help.ubuntu.com/10.04/serverguide/C/tomcat.html

(Eu não criei uma versão em nível de instância - a versão em nível de sistema estava correta)

Quando tentei iniciá-lo, recebi o seguinte erro no log:

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)

Isso foi resolvido fazendo o seguinte:

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

Por que eu precisei fazer isso? Por que não funciona na caixa? (Por que isso não está noManual do Ubuntu no Tomcat?)

Responder1

Instalando o Tomcat usando:

sudo apt-get install tomcat6

deve instalar e iniciar o Tomcat como um serviço perfeitamente. O serviço pode ser iniciado e interrompido usando:

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

Você pode verificar se o serviço está em execução visualizando http://localhost:8080/, usando um navegador ou na linha de comando:

curl http://localhost:8080/

Se isso não estiver funcionando imediatamente para você, algo está estranho em como sua máquina está configurada ou em como você está tentando executar o serviço Tomcat.

Se você estiver tentando executar o Tomcat de outra forma que não seja usando o script /etc/init.d/tomcat6, provavelmente terá complicações. Existem duas variáveis ​​ambientais que definem onde a distribuição e os arquivos do Tomcat estão localizados; CATALINA_HOME e CATALINA_BASE. Para uma instalação básica do pacote, eles serão definidos automaticamente pelo script init.d para:

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

Se você estiver tentando executar o Tomcat de alguma outra forma, é possível que essas variáveis ​​não estejam configuradas corretamente, o que pode resultar no erro que você está descrevendo.

O servidor Tomcat empacotado foi projetado para ser usado para executar o Tomcat como um serviço em segundo plano em um servidor e, como tal, só deve ser iniciado e interrompido usando o script init.d. Se você estiver tentando executar o Tomcat em uma máquina de desenvolvimento (por exemplo, a partir de um IDE como o Eclipse), você descobrirá que a maneira como o pacote instala o Tomcat é inadequada e, em vez disso, você deve instalar uma instância privada usando o comandoinstruçõesno manual do servidor ou porbaixandodiretamente do site do Tomcat e extraindo-o manualmente.

informação relacionada