tomcat8 von wheezy-backports schlägt mit configtest.sh fehl

6

Ich habe tomcat8Paket von installiert wheezy-backports. Ich verwende die Standardinstallation / unveränderte Installation mit den folgenden Erwartungen:

  • Ich benutze Oracle Java 8 JDK
  • in /etc/default/tomcat8wird hinzugefügt:JAVA_HOME=/usr/lib/jvm/java-8-oracle

Ich kann Tomcat starten / stoppen. Es werden jedoch viele Warnungen angezeigt. Aktiviert mit /usr/share/tomcat8/bin/configtest.shist die Ausgabe:

  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

Klar einige Probleme :)

  • JRE_HOME sollte auf JAVA_HOME gesetzt sein, ist es aber nicht
  • fehlende Verzeichnisse
  • (aus diesem Beispiel nicht ersichtlich) Die Protokollierung funktioniert nicht ordnungsgemäß (Änderungen in /etc/tomcat8/logging.propertieshaben keine Auswirkung. Die Einstellungen sind jedoch korrekt (siehe psAusgabe) und/var/lib/tomcat8/conf -> /etc/tomcat8

Was ist hier falsch?

AKTUALISIEREN

Ausgabe von ps(zur besseren Lesbarkeit bearbeitet), die imo gut aussieht:

  $ 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

UPDATE 2

Tomcat 8 unter Ubuntu hat ähnliche Probleme, siehe http://java.dzone.com/articles/vaadin-docker-a-novices-journey

Müller
quelle
Wenn ich es nur betrachte, pssieht meine Linie bis auf die JVM gleich aus. und das -Xmx/ -XX, das auch später kommt; und ich habe die Sicherheit aktiviert. Was sind Ihre Paketversionen, übrigens?
Mike
Debian 3.2.63-2 + deb7u2 x86_64; Tomcat: 8.0.14-1 ~ bpo70 + 1, Oracle jdk (manuelle Installation) 1.8.0_25-b17
rmuller

Antworten:

1

Mir ist aufgefallen, dass Sie dies nur sehen, wenn Sie rennen configtest.sh, und es gibt einen offensichtlichen Grund: CATALINA_BASEet al. nur gesetzt werden /etc/init.d/tomcat8. Wenn ich configtest.shwie Sie laufe , erhalte ich die gleiche Ausgabe.

Wenn Sie auf configtestdie gleiche Weise wie der Dämon ausgeführt werden möchten, möchten Sie wahrscheinlich hacken /etc/init.d/tomcat8, um dieses Argument zu akzeptieren. Aus irgendeinem Grund haben sich die Paketbetreuer nicht um diese Probleme gekümmert. Es sieht auch so aus, als könnten Sie die Umgebungsvariablen vor dem Ausführen möglicherweise manuell festlegen configtest.sh. Ich denke, ich catalina.shwerde sie abholen.


Die WARNING: Problem with directoryZeilen stammen aus den eingestellten Klassenladepfaden /etc/tomcat8/catalina.properties. Dies ist wahrscheinlich nur eine alte Kruft, die der Debian-Betreuer hinterlassen hat ... um alte Konfigurationen nicht zu stören? Es ist nicht alles im aktuellen Upstream vorhanden , und es wurde bereits zuvor diskutiert .

Mike
quelle
Sie haben Recht, Laufen configtestmacht es nur unklarer. Das Problem "Verzeichnisverzeichnis" und Protokollierung bleibt jedoch bestehen. Ich habe gerade nachgesehen. Also habe deine Antwort positiv bewertet, ist aber nicht "die" Antwort.
Müller
Zu meiner Antwort hinzugefügt. Was ist mit der Protokollierung los? Du hast es nie wirklich gesagt. (Was ändern Sie? Was erwarten Sie?)
Mike
Siehe dritte Aufzählung unter "Offensichtlich einige Probleme" für Probleme mit der Protokollierung (die immer noch bestehen)
Müller
Ja, das habe ich vor meinem letzten Kommentar gesehen. Meine Fragen standen im Zusammenhang mit dem Lesen.
Mike
4

Dies ist eine lange Saga. Das Hauptproblem ist, dass die Java-Community und die Linux-Community viele Quasi-Standards, Praktiken und Konventionen geschaffen haben, die sich in jeder Hinsicht irgendwie widersprechen.

Sie können Java und Linux leicht integrieren, aber Sie müssen beide lernen , und Sie müssen viele von ihnen auf beiden Seiten brechen. Wenn Sie nur eine kennen (entweder die Java- oder die Linux-Welt), befinden Sie sich in einer klaren Welt, in der Sie sich immer schmutzig machen müssen.

Ihr aktuelles Problem ist diesmal kein Problem mit Umgebungsvariablen, sondern ein einfaches Problem mit "Verzeichnis nicht vorhanden". Der einfachste Weg, diese Warnung zu vermeiden, besteht darin, das fehlende Verzeichnis / usr / share / tomcat8 / shared / classes einfach von Hand zu erstellen (obwohl dies ein wenig dem Linux-Zoll widerspricht).

Dieses Verzeichnis ist ein notwendiger Pfad zum Standard-Tomcat-JVM-Klassenladeprogramm, und es schadet höchstwahrscheinlich nichts, wenn es leer bleibt.

Vielleicht könnten Sie ein Contents-amd64.gz einchecken, wenn dieses Verzeichnis nicht von einem anderen Paket erstellt wurde. Wenn ja, installieren Sie das Paket.


quelle
Vielen Dank! Wir verwenden Debian (5, 6 und 7) + Tomcat (5.5, 6) seit langer Zeit, hatten nie Probleme. Aus diesem Grund haben wir ein Upgrade auf Debian 7 + Tomcat 8 durchgeführt. Diesmal ist die Erfahrung jedoch völlig anders :( Ich sehe nicht, wie sich dieses Problem auf die "Tatsache auswirkt, dass die Java-Community und die Linux-Community viel geschaffen haben ...". Ich weiß, dass ich die Verzeichnisse von Hand erstellen kann, aber ich möchte das eigentliche Problem lösen :) Beachten Sie auch das (seltsame) Protokollierungsproblem.
Müller
Ich habe die Verzeichnisse manuell erstellt, wie Sie vorgeschlagen haben, und die Warnungen sind verschwunden. Hier MUSS jedoch etwas nicht in Ordnung sein, da das Hinzufügen dieser Verzeichnisse nach der Installation etwas seltsam ist.
Müller
@rmuller Dieses Mal halte ich dies für einen Debian-Fehler. Die Debian-Standards sind ungewöhnlich strenge Linux-Bräuche, daher sind sie besonders schwer in Java zu integrieren. Meiner Meinung nach war Debian in Java nie gut, obwohl sie große Anstrengungen unternommen haben. Es ist ein Zusammenprall der Welten.
1

Ich habe tomcat8laufen auf openjdk-8-jdkin einem Jessie LXC, und ich erhalte die gleichen WARNINGs ohne negative Wirkung. Ich verstehe das nicht SEVERE. Aber meine psZeile lautet ... -Dcatalina.base=/var/lib/tomcat8 -Dcatalina.home=/usr/share/tomcat8 -Djava.io.tmpdir=/tmp/tomcat8-tomcat8-tmp....

Mike
quelle
Und BTW, kann ich nicht JAVA_HOMEin /etc/default/tomcat8. Aber ich habe nur die eine Version installiert.
Mike
Danke Mike. Siehe meine aktualisierte Frage. Habe die gleiche psAusgabe! Das macht das Verhalten noch seltsamer. In meinem Fall funktioniert die Webanwendung trotz aller Warnungen und schwerwiegenden Meldungen einfach!?
Müller