
Ich verwalte den Tomcat-Server hinter Nginx. In Tomcat gibt es mehrere Webanwendungen. Mein Betriebssystem ist Ubuntu 18.04LTS auf Digital Ocean.
Alles funktioniert einwandfrei, aber plötzlich ist ein Problem aufgetreten. Tomcat läuft einwandfrei, aber Webanwendungen funktionieren nicht! Und in den Serverprotokollen wird eine fehlende Bibliothek angezeigt, aber sie existiert dort immer noch.
Also, kann mir jemand einen Tipp geben, was das Problem ist?
oder schlägt mir bitte jemand die perfekte/Produktionsebene server.xml
und tomcat8.service
Konfigurationsdatei vor.
server.xml- eine der virtuellen Webanwendungen
<Service name="tm_xxx">
<Connector port="7072" maxHttpHeaderSize="7192"
maxThreads="1000" minSpareThreads="45" maxSpareThreads="100"
enableLookups="false" redirectPort="9443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<Connector port="7172"
enableLookups="false" redirectPort="9043" protocol="AJP/1.3" />
<Engine name="tm_LB2" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="tm_xxx"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Valve className="org.apache.catalina.valves.ErrorReportValve"
showReport="false"
showServerInfo="false" />
</Host>
</Engine>
</Service>
tomcat8.dienst
[Unit]
Documentation=man:systemd-sysv-generator(8)
SourcePath=/etc/init.d/tomcat8
Description=LSB: Start Tomcat.
Before=multi-user.target
Before=multi-user.target
Before=multi-user.target
Before=graphical.target
After=remote-fs.target
After=network-online.target
After=nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
Restart=always
RestartUSec=50ms
TimeoutStartSec=1min
TimeoutStopSec=1min
TimeoutSec=1min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
SuccessExitStatus=5 6
ExecStart=/etc/init.d/tomcat8 start
ExecStop=/etc/init.d/tomcat8 stop
SS für FEHLER incatlina.out
PS: Ich habe hier oft sehr schlechte Erfahrungen gemacht (< 5000 Leute mit schlechtem Ruf). Wenn Sie nicht antworten möchten, gehen Sie bitte. Posten Sie keine Antworten wie „Kontaktieren Sie einen Fachmann“ oder so etwas. Ich habe ein Problem, also poste ich meine Frage nach gründlicher Recherche hier.
EDIT 1: Noch etwas, das ich vorher vergessen habe zu erwähnen – ich stelle neue Dinge über bereit gitlab runner
und lade sie dann einfach neu webapps
. Ich starte den Tomcat-Dienst nicht neu. Zum Neuladen webapps
erwähne ich es in context.xml
der Datei.
Antwort1
Während des Anwendungsstarts scannt Tomcat alle Dateien *.jar
( $CATALINA_HOME/lib
unter /usr/share/tomcat8/lib
Debianoids), $CATALINA_BASE/lib
(normalerweise, /var/lib/tomcat8/lib
wenn Sie nur einen Tomcat ausführen) und in den WEB-INF/lib
Ordnern pro Anwendung.
Aus Ihren Protokollen geht hervor, dass Sie einige Jar-Dateien haben, /var/lib/tomcat8/lib/lib
die aufgelistet, aber nicht geöffnet werden können. Meine Vermutung ist: Das sind einige hängende symbolische Links, die Sie während der Installation versehentlich hinzugefügt haben.
Notiz: Mit Ausnahme einiger JDBC-Treiber und ähnlichem benötigt Ihre Anwendung keine Dateien im Format $CATALINA_BASE/lib
.