Почему установка tomcat6 требует создания программной ссылки на /usr/share/java?

Я установил tomcat6 на lucid, используя инструкции здесь: https://help.ubuntu.com/10.04/serverguide/C/tomcat.html

(Я не создал версию уровня экземпляра - версия уровня системы была в порядке)

Когда я попытался запустить его, я получил следующую ошибку в журнале:

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)

Это было решено путем выполнения следующих действий:

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

Зачем мне это нужно? Почему это не работает из коробки? (Почему этого нет в Руководстве по Ubuntu для Tomcat?)

1 ответ

Решение

Установка Tomcat с использованием:

sudo apt-get install tomcat6

следует установить и запустить Tomcat как службу просто отлично. Служба может быть запущена и остановлена ​​с помощью:

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

Вы можете проверить, работает ли служба, просмотрев http://localhost:8080/либо с помощью браузера, либо из командной строки:

curl http://localhost:8080/

Если это не работает "из коробки", то что-то странное в том, как настроена ваша машина, или в том, как вы пытаетесь запустить службу Tomcat.

Если вы пытаетесь запустить Tomcat каким-либо иным способом, кроме использования сценария /etc/init.d/tomcat6, вы, вероятно, столкнетесь с трудностями. Есть две переменные среды, которые определяют, где находятся дистрибутив и файлы Tomcat; CATALINA_HOME и CATALINA_BASE. Для ванильной установки пакета они будут автоматически установлены скриптом init.d для:

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

Если вы пытаетесь запустить Tomcat каким-либо другим способом, возможно, эти переменные установлены неправильно, что может привести к описываемой вами ошибке.

Упакованный сервер Tomcat предназначен для использования Tomcat в качестве фоновой службы на сервере, поэтому его следует запускать и останавливать только с помощью сценария init.d. Если вы пытаетесь запустить Tomcat на компьютере разработчика (например, из IDE, такой как Eclipise), то вы обнаружите, что способ установки пакета Tomcat не подходит, и вместо этого вам следует установить частный экземпляр, используя инструкции, приведенные в руководство сервера или загрузив его непосредственно с веб-сайта Tomcat и распаковав его вручную.

Другие вопросы по тегам