Deploy Anwendung auf benutzerdefinierten Host von Tomcat
Frage
Ich habe einige Probleme meine Anwendung bereitstellen.
. Umgebung: Ubuntu 10.04, Tomcat 7,02 (Install aus dem Archiv von tomcat Website, nicht von Repositories), Server ausgeführt wird und stoped manualy, keine IDE mit
Zum ersten habe ich Gastgeber in $CATALINA_HOME/conf/server.xml
erstellt:
<Host name="java.dev"
appBase="/home/krasilich/java/"
autoDeploy="true" >
<Alias>www.java.dev</Alias>
</Host>
Dann einen Kontext, in $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
erstellen:
<Context docBase="siloc/web/" />
Und bekommen den Fehler
A docBase / home / krasilich / java / SILOC / web / innerhalb des Host-appBase festgelegt wurde, und wird ignoriert
Aber wenn ich manager.xml zu $CATALINA_HOME/conf/Catalina/java.dev/
kopieren kann ich Manager App laufen.
Wenn ich meine Anwendung durch Manager einsetzen - es sagt, dass alles gut geht, aber ich habe noch die 404 auf java.dev:8080/siloc /
Das ist alles über benutzerdefinierte Host.
Ich habe auch auf localhost durch Manager zu implementierende Anwendung ausprobiert und es funktioniert, kann ich mein „Hallo Wort“ auf localhost sehen: 8080 / SILOC /
Aber, wenn ich den Text in meiner index.jsp ändern werde es nicht am Frontend betroffen. Die „Umschichtung von“ Taste ist keine Hilfe für mich.
Wie ich bereits erwähnte Manager kopieren Sie einfach Anwendungsdateien in webapps Verzeichnis, und stellen Sie keine Änderungen in Konfigurationsdateien.
Alles was ich brauche, dass ich die Anwendung in einem beliebigen Verzeichnis in meinem Dateisystem bereitstellen kann (tatsächlich wird es /home/krasilich/java/
).
Und es wäre toll, wenn ich dies wie java.dev auf benutzerdefinierte Host tun kann
Ich brauche die Antwort, warum der Kontext, in $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
nicht für mich funktioniert, und was soll ich tun, damit es konsistent machen?
Danke.
Lösung
ich in der Lage gewesen, Ihr Problem zu replizieren.
Es gibt 2 Umgehung kann ich vorschlagen, nachdem sie mit Kombinationen von appBase
und docBase
tüftelte. Sieht aus wie die beiden arbeiten nicht zusammen.
Option 1 - Entfernen appBase
Nehmen Sie die appBase
von server.xml
und geben Sie den vollständigen Pfad zum Web-App in docBase
im $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
Ich nehme an, Ihr Wert /home/krasilich/java/siloc/web/siloc
sein wird.
Hinweis: nur bis zu den übergeordneten Ordner /home/krasilich/java/siloc/web/
Angabe zeigt Ihnen ein Verzeichnis der übergeordneten Auflistung Ordner
Option 2 - Remove docBase
In $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
entfernen Sie die docBase
und halten nur <Context/>
Tomcat folgert die Webapp Namen siloc
vom $CATALINA_HOME/conf/Catalina/java.dev/siloc.xml
und es sieht für die Webapp namens siloc
im appBase.
Dies ermöglicht java.dev:8080/siloc/ zu arbeiten, sofern Sie auch die appBase
in server.xml
zu den übergeordneten Ordner Ihrer Webapp siloc
ändern.
Als Antwort auf warum manager
Werke, aus demselben Grund - es gibt keine docBase im manager.xml
Ich versuche, andere Kombinationen von docBase aber jeder Wert Ich gebe führt die
ACHTUNG: Ein docBase ... innerhalb des Host-appBase festgelegt wurde, und wird ignoriert
So ist mein Fazit der docBase zu entfernen. Dies ist keine gute Idee -. Da der vollständige Pfad zum übergeordneten Ordner dann in server.xml fest einprogrammiert ist