tomcat8 от хрипящих бэкпортов перестал работать с configtest.sh

Я установил tomcat8 пакет от wheezy-backports. Я использую значение по умолчанию / неизмененная установка со следующими ожиданиями:

  • Я использую Oracle Java 8 JDK
  • в /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

Очевидно некоторые проблемы :)

  • JRE_HOME должен быть установлен на JAVA_HOME, но не
  • недостающие каталоги
  • (не ясный из этого примера), вход не работает правильно (изменения в /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

7
задан 13 January 2015 в 21:50
3 ответа

Мне пришло в голову, что вы видите это только при запуске configtest.sh , и есть очевидная причина: CATALINA_BASE и другие. устанавливается только в /etc/init.d/tomcat8 . Когда я запускаю configtest.sh , как и вы, я получаю тот же результат.

Если вы хотите запустить configtest так же, как и демон, вы, вероятно, захотите взломайте /etc/init.d/tomcat8 , чтобы принять этот аргумент. По какой-то причине сопровождающие пакетов не пошли на такие неприятности. Также похоже, что вы можете установить переменные среды вручную перед запуском configtest.sh ; Я думаю, что catalina.sh заберет их.


Строки ПРЕДУПРЕЖДЕНИЕ: проблема с каталогом связана с путями загрузчика классов, установленными в /etc/tomcat8/catalina.properties . Вероятно, это просто какой-то старый мусор, оставленный сопровождающим Debian ... чтобы не нарушать старые конфигурации? Не все это присутствует в текущем апстриме , и это обсуждалось ранее .

1
ответ дан 2 December 2019 в 23:40

Это длинная сага. Главная проблема в том, что java-сообщество и linux-сообщество создали множество квази-стандартов, практик и конвенций, и они каким-то образом противоречат друг другу во всех отношениях.

Вы можете легко интегрировать java и linux, но вы должны выучить оба из них, и вы должны будете сломать многие из них с обеих сторон. Если вы знаете только один (либо java, либо мир linux), то вы окажетесь в ясном мире, где вы должны делать себя всегда грязным.

Ваша текущая проблема на этот раз не проблема с переменными окружения, а простая проблема с "каталогами не существующими". Самый простой способ избежать этого предупреждения, если вы просто создадите вручную отсутствующий каталог /usr/share/tomcat8/shared/classes (несмотря на то, что это немного противоречит обычаям linux).

Этот каталог - необходимый путь к стандартному загрузчику классов jvm tomcat, и очень вероятно он ничего не повредит, если останется пустым.

Может быть, вы могли бы проверить в Contents-amd64.gz, что этот каталог не создан другим пакетом. Если да, установите этот пакет.

4
ответ дан 2 December 2019 в 23:40

У меня tomcat8 работает на openjdk-8-jdk в ЛХК Джесси, и я получаю такое же ПРЕДУПРЕЖДЕНИЕ , чтобы не было плохого эффекта. Я не получаю SEVERE. Но моя ps строка читается ...-Dcatalina.base=/var/lib/tomcat8 -Dcatalina.home=/usr/share/tomcat8 -Djava.io.tmpdir=/tmp/tomcat8-tomcat8-tmp....

.
1
ответ дан 2 December 2019 в 23:40

Теги

Похожие вопросы