2013-01-14 8 views
13

Ich habe die Threads durchgelesen, die beschreiben, wie eine bestimmte WAR (zB abc.war) als Standard-Web-App in Tomcat konfiguriert wird.Einstellen der Standardanwendung in Tomcat 7

Entweder

Benennen Sie die abc.war zu ROOT.war

oder

einen Kontext ROOT.xml in $ erstellen {tomcat.home}/conf/Catalina/localhost mit path = "" und docBase wird auf den relativen/absoluten Pfad zum Krieg gesetzt (wobei der abc.war außerhalb von Webapps gehalten wird, um doppelte Bereitstellung zu vermeiden).

Beide Lösungen führen zu ROOT.war im Verzeichnis webapps (appBase). Allerdings möchte ich den WAR-Namen (abc.war) in Webapps behalten und kein separates ROOT.war, um dies zu erreichen.

Eine Lösung, die in meinem Fall funktionierte, war das Hinzufügen eines Kontexts unter <Host> Tag in server.xml. Aber gemäß Tomcat 7 Doc ist es nicht empfehlenswert, Kontext direkt in server.xml hinzuzufügen.

Könnte jemand mich auf eine Alternative hinweisen?

Danke.

+0

zweiter Ansatz – TheWhiteRabbit

+0

Ich fuhr fort mit innerhalb des Host-Tags von server.xml. –

+1

http://wiki.apache.org/tomcat/HowTo#How_do_I_make_my_web_application_be_the_Tomcat_default_application.3F beziehen Sie sich das können Sie vollständige Antwort – madhu

Antwort

19

detaillierter Ansatz

Erste Methode:

erstes Herunterfahren Ihr Kater [aus dem bin-Verzeichnis (sh shutdown.sh)] dann müssen Sie die gesamten Inhalt Ihres Kater webapps löschen folder (rm -fr *) dann benenne deine WAR Datei in ROOT.war um endlich deinen Kater zu starten [von th e ist-Verzeichnis (sh startup.sh)]

Zweite Methode:

lassen Sie Ihre WAR-Datei in CATALINA_BASE/webapps, unter seinem ursprünglichen Namen - ausschalten AutoDeploy und deployOnStartup in Ihrem Host-Elemente in dem Server. XML-Datei. Definieren Sie explizit alle Anwendungskontexte in server.xml, indem Sie den Pfad und docBase angeben. Sie müssen dies tun, da Sie alle Tomcat automatischen Bereitstellungs-Mechanismen deaktiviert haben und Tomcat Ihre Anwendungen nicht mehr bereitstellen wird , es sei denn, es findet ihren Kontext in der Datei server.xml.

Hinweis:

, dass diese letzte Methode bedeutet auch, dass, um eine Änderung zu jeder Anwendung zu machen, müssen Sie Tomcat beenden und neu starten.

Dritte Methode:

Platzieren Sie Ihre Kriegs Datei außerhalb von CATALINA_BASE/webapps (es muss außerhalb sein Doppel Einsatz zu verhindern). - Platzieren Sie eine Kontextdatei mit dem Namen ROOT.xml in
CATALINA_BASE/conf//. Das einzelne Element in dieser Kontextdatei MUSS ein docBase-Attribut aufweisen, das auf den Speicherort Ihrer WAR-Datei verweist. Das Pfadelement sollte nicht gesetzt werden - es wird von dem Namen der .xml-Datei in diesem Fall ROOT.xml abgeleitet. Weitere Informationen finden Sie im obigen Kontextcontainer.

+1

Denken Sie daran, mit der dritten Methode wird die WAR-Datei nicht in den Ordner Webapps bereitstellen , vorausgesetzt, Sie haben den Standardwert in der Datei server.xml beibehalten. Wenn Sie myApp.war haben und der Kontext-Root/foo/bar sein soll, würden Sie Ihre XML-Datei foo # bar.xml – Striker

+1

nennen. Ich habe Ihre 3. Lösung ausprobiert, aber sie funktioniert nicht für mich. Der Name meiner App lautet 'springExample'. Ich habe sie wie erwähnt unter' C: \ Tomcat \ springExample.war' außerhalb des Webapps DIR platziert. Und dann habe ich eine 'ROOT.xml' Datei in' C: \ Tomcat \ conf \ Catalina \ localhost \ ROOT.xml' erstellt. Der Inhalt von ROOT.xml ist ' '. Und den Server neu gestartet. Bitte sagen Sie mir, wo ich falsch mache. –

+1

Ich habe es geschafft, indem es den 'docBase-Attributwert auf ' geändert hat. Kannst du mir jetzt sagen, wo 'Tomcat' diese' War' Datei extrahiert? Und es kann durch Tomcat App-Manager-Web-Interface verwaltet werden. Danke ... –