Ответ 1
Я не эксперт по Tomcat, но у меня была такая же проблема, и я смог перезапустить сервер с помощью команды:
sudo /etc/init.d/tomcat6 restart
Я думаю, что это хороший вопрос.
Я нашел это также запутанным. Я установил tomcat несколько минут назад (через некоторое время), и я замечаю, что это два разных места "webapps".
в/usr/share/tomcat6/webapps/default_root/ at/var/lib/tomcat6/webapps/ROOT/
Содержание обоих одинаково, но ни одна из них не является символическими ссылками.
Когда я начал tomcat, он говорит:
Цитата:
Это домашняя страница Tomcat по умолчанию. Его можно найти в локальной файловой системе по адресу:/var/lib/tomcat6/webapps/ROOT/index.html
Ветераны Tomcat6 могут с удовольствием узнать, что этот системный экземпляр Tomcat установлен с CATALINA_HOME в /usr/share/tomcat 6 и CATALINA_BASE в /var/lib/tomcat 6 Итак, на основе этой информации папка /usr/share/... была сохранена для обратной совместимости, правильно?
Но согласно тому, что вы опубликовали libs, считываются из CATALINA_HOME вместо CATALINA_BASE.
Возможно, они по-прежнему сохраняют эту ссылку по умолчанию, чтобы другие системы перестали работать после обновления?
Хорошее наблюдение!
UPDATE:
Я читал это по адресу:/usr/share/tomcat6/bin/catalina.sh:
Цитата:
# CATALINA_HOME May point at your Catalina "build" directory.
#
# CATALINA_BASE (Optional) Base directory for resolving dynamic portions
# of a Catalina installation. If not present, resolves to
# the same directory that CATALINA_HOME points to.
Когда мы читаем:/etc/init.d/tomcat6:
(в начале)
CATALINA_HOME=/usr/share/$NAME
(то...)
# Directory for per-instance configuration files and webapps
CATALINA_BASE=/var/lib/$NAME
Однако, если вы попытаетесь запустить TOMCAT вручную (как я делал давно), выполните следующие действия: sudo/usr/share/tomcat6/bin/startup.sh
Отображается:
Цитата:
Using CATALINA_BASE: /usr/share/tomcat6
Using CATALINA_HOME: /usr/share/tomcat6
Using CATALINA_TMPDIR: /usr/share/tomcat6/temp
Using JRE_HOME: /usr
touch: cannot touch `/usr/share/tomcat6/logs/catalina.out': No such file or directory
/usr/share/tomcat6/bin/catalina.sh: 357: cannot create /usr/share/tomcat6/logs/catalina.out: Directory nonexistent
Итак, почему здесь CATALINA_BASE устанавливается так же, как CATALINA_HOME?
/usr/share/tomcat6/logs/не существует, но существует в /var/lib/tomcat 6/logs/
Я вижу, что мои журналы записывают в /var/lib/... при запуске Tomcat из init.d script. Поэтому лучше начать его там.
Я не эксперт по Tomcat, но у меня была такая же проблема, и я смог перезапустить сервер с помощью команды:
sudo /etc/init.d/tomcat6 restart
CATALINA_HOME - сообщает "org.apache.catalina.startup.Bootstrap", где искать требуемые /lib/bin и другие - зависимые для запуска сервера. Это, в основном, ваш домашний каталог установки Tomcat.
CATALINA_BASE - ожидает, что определенная структура каталогов будет проверяться (после запуска). Например /conf, чтобы найти server.xml и web.xml, который специфичен для веб-приложения. пока у вас есть эта структура каталогов и контент, CATALINA_BASE может быть любой директорией.
Я это видел.
Правильным и симпатичным способом является создание "setenv.sh" script в вашей папке CATALINA_HOME/bin (в вашем случае "/usr/share/tomcat6/bin/setenv.sh" ).
Содержимое вашего setenv.sh:
#!/bin/sh
export CATALINA_BASE=/new/catalinabase/path
Таким образом, нет необходимости изменять catalina.sh самостоятельно. Если setenv.sh присутствует в каталоге bin, catalina.sh выполнит его автоматически.
Я не могу сказать, почему CATALINA_HOME и CATALINA_BASE одинаковы в startup.sh(resp. catalina.sh) - это действительно странно.
Конечно, вы можете запустить Tomcat через init.d script. Но иногда вы можете запустить его через startup.sh/catalina.sh(например, для отладки).
Итак, в качестве обходного пути/взлома вы можете исправить проблему, добавив следующую строку в начале /usr/share/tomcat 6/bin/catalina.sh
export CATALINA_BASE=/var/lib/tomcat6
Я мог бы сделать это, выполнив эту команду,
$ service tomcat6 start
который повторно инициализировал мой путь CATALINA_*
и запустил экземпляр tomcat
chmod +x startup.sh
chmod +x shutdown.sh
chmod +x catalina.sh
chmod +x setclasspath.sh
chmod +x bootstrap.jar
chmod +x tomcat-jni.jar
надеюсь, что это будет работа.