Я установил tomcat8
пакет от wheezy-backports
. Я использую значение по умолчанию / неизмененная установка со следующими ожиданиями:
/etc/default/tomcat8
добавляется: JAVA_HOME=/usr/lib/jvm/java-8-oracle
Я могу запустить/остановить кота. Однако много предупреждений отображено. Сверенный /usr/share/tomcat8/bin/configtest.sh
, вывод:
Using CATALINA_BASE: /usr/share/tomcat8
Using CATALINA_HOME: /usr/share/tomcat8
Using CATALINA_TMPDIR: /usr/share/tomcat8/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/share/tomcat8/bin/bootstrap.jar:/usr/share/tomcat8/bin/tomcat-juli.jar
Jan 10, 2015 4:55:40 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat8/common/classes], exists: [false], isDirectory: [false], canRead: [false]
Jan 10, 2015 4:55:40 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat8/common], exists: [false], isDirectory: [false], canRead: [false]
Jan 10, 2015 4:55:40 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat8/server/classes], exists: [false], isDirectory: [false], canRead: [false]
Jan 10, 2015 4:55:40 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat8/server], exists: [false], isDirectory: [false], canRead: [false]
Jan 10, 2015 4:55:40 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat8/shared/classes], exists: [false], isDirectory: [false], canRead: [false]
Jan 10, 2015 4:55:40 PM org.apache.catalina.startup.ClassLoaderFactory validateFile
WARNING: Problem with directory [/usr/share/tomcat8/shared], exists: [false], isDirectory: [false], canRead: [false]
Jan 10, 2015 4:55:40 PM org.apache.catalina.startup.Catalina initDirs
SEVERE: Cannot find specified temporary folder at /usr/share/tomcat8/temp
Jan 10, 2015 4:55:40 PM org.apache.catalina.startup.Catalina load
Очевидно некоторые проблемы :)
/etc/tomcat8/logging.properties
не имейте никакого эффекта. Но настройки корректны (см. ps
вывод) и /var/lib/tomcat8/conf -> /etc/tomcat8
Что не так здесь?
ОБНОВЛЕНИЕ
Вывод ps
(отредактированный для удобочитаемости), который смотрит хороший imo:
$ ps aux | grep java
tomcat8 15654 0.1 3.6 2643416 147024 ? Sl Jan10 1:42 /usr/lib/jvm/java-8-oracle/bin/java \
-Xmx1024m -XX:+UseConcMarkSweepGC \
-Djava.util.logging.config.file=/var/lib/tomcat8/conf/logging.properties \
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
-Djava.awt.headless=true \
-Djava.endorsed.dirs=/usr/share/tomcat8/endorsed \
-classpath /usr/share/tomcat8/bin/bootstrap.jar:/usr/share/tomcat8/bin/tomcat-juli.jar \
-Dcatalina.base=/var/lib/tomcat8 \
-Dcatalina.home=/usr/share/tomcat8 \
-Djava.io.tmpdir=/tmp/tomcat8-tomcat8-tmp
org.apache.catalina.startup.Bootstrap start
ОБНОВЛЕНИЕ 2
Tomcat 8 на Ubuntu имеет подобные проблемы, см. http://java.dzone.com/articles/vaadin-docker-a-novices-journey
Мне пришло в голову, что вы видите это только при запуске configtest.sh
, и есть очевидная причина: CATALINA_BASE
и другие. устанавливается только в /etc/init.d/tomcat8
. Когда я запускаю configtest.sh
, как и вы, я получаю тот же результат.
Если вы хотите запустить configtest
так же, как и демон, вы, вероятно, захотите взломайте /etc/init.d/tomcat8
, чтобы принять этот аргумент. По какой-то причине сопровождающие пакетов не пошли на такие неприятности. Также похоже, что вы можете установить переменные среды вручную перед запуском configtest.sh
; Я думаю, что catalina.sh
заберет их.
Строки ПРЕДУПРЕЖДЕНИЕ: проблема с каталогом
связана с путями загрузчика классов, установленными в /etc/tomcat8/catalina.properties
. Вероятно, это просто какой-то старый мусор, оставленный сопровождающим Debian ... чтобы не нарушать старые конфигурации? Не все это присутствует в текущем апстриме , и это обсуждалось ранее .
Это длинная сага. Главная проблема в том, что java-сообщество и linux-сообщество создали множество квази-стандартов, практик и конвенций, и они каким-то образом противоречат друг другу во всех отношениях.
Вы можете легко интегрировать java и linux, но вы должны выучить оба из них, и вы должны будете сломать многие из них с обеих сторон. Если вы знаете только один (либо java, либо мир linux), то вы окажетесь в ясном мире, где вы должны делать себя всегда грязным.
Ваша текущая проблема на этот раз не проблема с переменными окружения, а простая проблема с "каталогами не существующими". Самый простой способ избежать этого предупреждения, если вы просто создадите вручную отсутствующий каталог /usr/share/tomcat8/shared/classes (несмотря на то, что это немного противоречит обычаям linux).
Этот каталог - необходимый путь к стандартному загрузчику классов jvm tomcat, и очень вероятно он ничего не повредит, если останется пустым.
Может быть, вы могли бы проверить в Contents-amd64.gz, что этот каталог не создан другим пакетом. Если да, установите этот пакет.
У меня tomcat8
работает на openjdk-8-jdk
в ЛХК Джесси, и я получаю такое же ПРЕДУПРЕЖДЕНИЕ
, чтобы не было плохого эффекта. Я не получаю SEVERE
. Но моя ps
строка читается ...-Dcatalina.base=/var/lib/tomcat8 -Dcatalina.home=/usr/share/tomcat8 -Djava.io.tmpdir=/tmp/tomcat8-tomcat8-tmp
....