2016-12-21 2 views
2

Ich möchte myapp in Tomcat Server bereitstellen. Ich weiß eine Möglichkeit ist, den Root-Ordner aus Webapps zu löschen und meine app.war als ROOT.WAR umzubenennen. Aber ich will das nicht machen. Ich möchte bereitstellen, wenn Benutzer auf meine App als www.xxx.com zugreifen, sollte es zu meiner App wie www.xxx.com/login.html gehen. Bitte helfenSo stellen Sie Apps in Tomcat Server bereit

+0

Mögliches Duplikat von [Meine Anwendung am Stamm in Tomcat implementieren] (http://stackoverflow.com/questions/5328518/deploying-my-application-at-the-root-in-tomcat) –

Antwort

-1

Sie haben mehrere Möglichkeiten eine Root-Anwendung zu setzen. (Siehe https://stackoverflow.com/a/5328636/6371459)

  1. ROOT Verzeichnis entfernen und Ihren Krieg bereitstellen als ROOT.war

  2. Stellen Sie Ihren Krieg in webapps und konfigurieren Sie den Kontextstamm in conf/server.xml Ihre WAR-Datei zu verwenden (not recommended weil Neustart erfordert)

  3. Erstellen Sie eine spezifische Kontextdateiundgesetzt docBase=your_war_name wie frühere 2) (siehe @ChristopherShultz Antwort)

Da Sie verworfen haben Option 1 und Option 2 ist nicht zu empfehlen, ich schlage vor, eine Kontext-Datei

+0

Konfigurieren eines 'Context 'in' server.xml' ist eine schlechte Idee. –

+0

Warum @ChristopherSchultz? Ich könnte zustimmen, aber es gibt nicht viele Möglichkeiten, wenn das OP den Krieg nicht in ROOT umbenennen will. Wenn Sie der Meinung sind, dass diese Option nicht anwendbar ist, sollten Sie Ihre eigene Antwort mit der anderen Option des Links angeben, anstatt sie als Duplikat zu markieren. 5 der 6 uploaded Antworten bieten die gleiche Technik und nur einen negativen Kommentar – pedrofb

6

Sie können jede WAR-Datei bereitstellen (oder ein explodiertes WAR-Verzeichnis) von (fast) überall mit beliebigem Kontextnamen, solange es nicht mit einer automatisch bereitgestellten Anwendung in Konflikt steht. Hier ist, wie:

  1. alle in Konflikt stehende Anwendungen entfernen von webapps/ (in diesem Fall wirklich, es ist nur ROOT)
  2. Ihre eigene Anwendung irgendwo anders bewegen als in webapps/
  3. Kopieren Sie die META-INF/context.xml Datei aus Ihrer Anwendung und Ort es in Tomcat conf/[engine]/[host]/[contextpath].xml - zum Beispiel conf/Catalina/localhost/ROOT.xml
  4. bearbeiten conf/[engine]/[host]/[contextpath].xml und fügen sie dieses Attribut auf das <Context> Element:

    docBase="/path/to/your/WAR.war"

Nun wird Tomcat einsetzen /path/to/your/WAR.war auf Kontextpfad / (da der Dateiname des Deployment Descriptor ist ROOT), und Sie haben nicht conf/server.xml zu ändern.

Wer interessiert sich für die Änderung conf/server.xml? Nun, diese Datei wird nur einmal während Container-Start gelesen, also wenn Sie Änderungen vornehmen, undeploy, redeploy, etc. müssen Sie den gesamten Container neu starten, um diese Änderungen aufzunehmen. Es ist viel besser, die Auto-Deployment-Funktion von Tomcat zu verwenden, die, wie Sie sehen können, sehr flexibel ist.

All dies ist in Tomcat's documentation on defining contexts ausgelegt, wo übrigens der allererste Satz klarstellt, dass die Definition eines Kontextes in server.xml eine schlechte Praxis ist.

Verwandte Themen