Detaillierte Erläuterung zur Lösung des Konflikts von Projekt-URLs, der durch das Festlegen des Standardpfads von Tomcat verursacht wird

Detaillierte Erläuterung zur Lösung des Konflikts von Projekt-URLs, der durch das Festlegen des Standardpfads von Tomcat verursacht wird

Vorwort

Tomcat ist ein hervorragender Java-Container, dennoch gibt es einige kleine Fallstricke, die sich nicht vermeiden lassen. Ich werde sie hier aufzeichnen.

START

Frage

  • URL-Pfadkonflikte nach der Bereitstellung mehrerer Projekte

Szenariobeschreibung

1. Unter Webapps gibt es zwei Projekte, Projekt A und Projekt B. Mit Ausnahme der Verwaltungsinformationsschnittstelle verfügen die beiden anderen Projekte über Sicherheitsüberprüfungsmechanismen.

2. Da projectA nicht vom Front-End und Back-End getrennt ist, sind die statischen Ressourcen auch im Java-Projekt vorhanden. Bei Schnittstellenanforderungen in statischen Ressourcen wird der Paketname nicht geschrieben. Beispielsweise verkettet der JS-Code beim Anmelden die Server-IP+Port+aktuell festgelegte URL (/login), fügt aber nicht /projectA vor /login hinzu. Daher gibt es beim Testen auf dem lokalen Computer kein Problem, und ein solches Problem tritt nur beim Bereitstellen auf. Dies ist auch ein Problem, das weiter unten gelöst wird.

3.projectB ist ein normal laufendes Projekt

Lösung für Szenario 2

Öffnen Sie die Konfigurationsdatei in Tomcat und fügen Sie <Context> im Tag <Host> hinzu, um es als Standardzugriffspfad des Servers festzulegen und so den Paketnamen zu vermeiden. Diese Methode ist jedoch äußerst informell und wird nicht empfohlen.

<Hostname="localhost" appBase="webapps"
      unpackWARs="true" autoDeploy="true">

    <!-- SingleSignOn-Ventil, gemeinsame Authentifizierung zwischen Webanwendungen
       Dokumentation unter: /docs/config/valve.html -->
    <!--
    <Valve-Klassenname="org.apache.catalina.authenticator.SingleSignOn" />
    -->

    <!-- Beispiel: Das Zugriffsprotokoll verarbeitet alle Daten.
       Dokumentation unter: /docs/config/valve.html
       Hinweis: Das verwendete Muster entspricht der Verwendung von pattern="common" -->
    <Valve-Klassenname="org.apache.catalina.valves.AccessLogValve" Verzeichnis="Protokolle"
        Präfix="localhost_access_log" Suffix=".txt"
        Muster="%h %l %u %t &quot;%r&quot; %s %b" />
    <Kontextpfad="" docBase="/usr/tomcat8.6/webapps/sc_edu" debug="0" reloadable="true"/>

  </Host>

Code Erklärung

<Kontextpfad="" docBase="/usr/tomcat8.6/webapps/sc_edu" debug="0" reloadable="true"/>
  • path und doBase geben zusammen den angegebenen Paketpfad an. Der Einfachheit halber können Sie docBase direkt deinstallieren.
  • Starten Sie Tomcat neu und testen Sie, ob auf die Ressourcen im Paket direkt über IP+Port zugegriffen werden kann. Beim Zugriff auf Ressourcen in anderen Paketen treten jedoch URL-Mehrdeutigkeiten auf. Ursprünglich wollte ich auf Projekt B zugreifen, aber es war Projekt A zugeordnet. Nur bei einigen URLs treten solche Probleme auf.

Dann besteht unsere Lösung darin, einen weiteren Tomcat zu installieren und nur Projekte bereitzustellen, die eine direkte Pfadzuordnung erfordern

Dadurch wird das Verzeichnis wiederhergestellt, in dem sich Tomcat befindet, und der Befehl cp kopiert

$> cp -r tomcat8.5/ tomcat8.6/

Verschieben Sie dann ProjektA in Tomcat8.5 nach Tomcat8.6.

Löschen Sie tomcat8.5

<Kontextpfad="" docBase="/usr/tomcat8.6/webapps/sc_edu" debug="0" reloadable="true"/>

In Tomcat8.6 müssen die folgenden Änderungen an service.xml vorgenommen werden.

Ändern Sie den Port, der dem Herunterfahren entspricht, auf 8006, solange dieser sich von Tomcat8.5 unterscheidet und der Port keine Konflikte verursacht.

<Server-Port="8006" shutdown="HERUNTERFAHREN">

Ändern Sie den Port entsprechend der Anforderung. Das Prinzip ist das gleiche wie oben.

<Anschlussport="8081" Protokoll="HTTP/1.1"
        VerbindungsTimeout="20000"
        UmleitungsPort="8443" />

Der Inhalt im <Host>-Tag wird kopiert und muss in den entsprechenden Mapping-Pfad geändert werden.

Auf diese Weise können zwei Tomcats gleichzeitig ausgeführt werden, ohne dass sich das Starten und Herunterfahren gegenseitig beeinflusst.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Analyse und Lösung des abnormalen Problems beim Laden von JAR in Tomcat
  • Detailliertes Verständnis und vergleichende Analyse der Server Apache, Tomcat und Nginx
  • Erläuterung verschiedener Möglichkeiten zum Ausführen von Tomcat unter Linux
  • So richten Sie virtuelle Verzeichnisse ein und konfigurieren virtuelle Pfade in Tomcat 7.0
  • Erklärung zur Verwendung von Tomcat mit IDEA Remote Debug
  • Tomcat verwendet Log4j zur Ausgabe des catalina.out-Protokolls
  • Connector-Konfiguration in Tomcat
  • Erläuterung zur Verwendung und Änderung des Standard-Programmveröffentlichungspfads von Tomcat
  • Detaillierte Schritte zum Importieren von Eclipse-Projekten in IDEA und zum Bereitstellen in Tomcat
  • Lösung für den Fall, dass der Tomcat-Server tomcat7w.exe nicht öffnen kann

<<:  Detaillierte Anweisungen zum Download und Installationsprozess von MySQL 5.7.18

>>:  Mysql 5.7.18 Verwenden von MySQL proxies_priv zur Implementierung einer ähnlichen Benutzergruppenverwaltung

Artikel empfehlen

HTML-Tabellen-Tag-Tutorial (46): Tabellenfußzeilen-Tag

Mit dem Tag <tfoot> wird der Stil der Tabel...

Setzen Sie den Eingang auf schreibgeschützt über deaktiviert und schreibgeschützt

Es gibt zwei Möglichkeiten, schreibgeschützte Eing...

MySQL-Schnellwiederherstellungslösung basierend auf dem Zeitpunkt

Der Grund für das Schreiben dieses Artikels ist, ...

Was soll ich tun, wenn ich die Quelldatei einer Webseite nicht anzeigen kann?

F: Wenn Sie Outlook oder IE verwenden, wird beim ...

So installieren und konfigurieren Sie einen FTP-Server in CentOS8.0

Nach der Veröffentlichung von CentOS8.0-1905 habe...

So verwenden Sie die Lotteriekomponente des WeChat Mini-Programms

Es wird in Form von WeChat-Komponenten bereitgest...

Vue verwendet dynamische Komponenten, um einen TAB-Umschalteffekt zu erzielen

Inhaltsverzeichnis Problembeschreibung Was ist di...

Detaillierte Schritte zur Installation von mysql5.7.18 auf dem Mac

1. Werkzeuge Wir benötigen jetzt zwei Tools: MySQ...

Langsame MySQL-Abfrage: Langsame Abfrage aktivieren

1. Was nützt eine langsame Abfrage? Es kann alle ...

Tutorial zur manuellen Installation von MySQL 8.0.13

In diesem Artikel finden Sie das Tutorial zur man...