Tomcat deployed nicht

Alexius

Mitglied
Hallo zusammen,

laut meiner Aufgabe, muss ich webapp-Verzeichnis aus dem Tomcat-Verzeichnis rausschmeißen und wo anders hin kopieren. Das geht auch alles wunderbar, da man hier einfach nur eine entsprechende Context – Datei unter $catalina_base/conf/[engine_name]/[host_name] anlegen muss und fertig ist es, die Anwendung lässt sich starten.

Meine application lässt sich auch updaten, und hier kommts. Updater läuft durch, die .war-Datei wird richtig in den von mir angegebenen Verzeichnis kopiert (Stichwort „docBase“). Das Problem ist aber, der Tomcat deployed die .war Datei nicht.
Laut Tomcat Doku soll das irgendwie funktionieren, wenn der Host Eintrag in der server.xml richtig ist, der bei mir so aussieht:
HTML:
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
</Host>

Ich weis nicht was ich falsch mache :bahnhof:
Hoffe dass ihr mir helfen könnt.
 
Du schreibst etwas von docBase. Daher zeig bitte deine context.xml und verifiziere, ob deine docBase einen absoluten Pfad verwendet.
 
Hallo turtle,

meine .xml sieht so aus:
HTML:
<Context path="/myApp" docBase="C:\temp\webapps\myApp" debug="0" workDir="C:\temp\work">
</Context>

Die Pfade aus der myApp.xml verwende ich auch in meiner Prog. und da diese einwandfrei funktioniert gehe ich davon aus das die Pfade stimmen. Habe aber gerade die attributes mithilfe der jconsole (jdk) kontoliert, sieht alles gut aus.
 
Ok, context.xml sieht gut aus.

Ich gebe zu, das noch nie benötigt zu haben, daher vermute ich jetzt.
Das Problem ist aber, der Tomcat deployed die .war Datei nicht.
Darunter verstehst du, das die war-Datei NICHT ausgepackt wird, oder?

Aber deine Konfiguration des Host sagt unpackWARs=true.

Wenn das alles zutrifft, würde ich versuchen einen zweiten virtuellen Host anzulegen, dessen appBase auf dein Verzeichnis (C:\temp\webapps\myApp) zeigt. Ich rate übrigens dazu, die context.xml INNERHALB der war-Datei unter /META-INF/context.xml zu packen.

Nun sollten war-Dateien im appBase des Host ausgepackt werden. Unter anderem wird die context.xml aus dem war nach C:\temp\webapps\myApp\conf\[enginename]/[hostname]\context.xml kopiert.

PS: Ich versuche immer eine Webapplikation laufen in "eingepackter" war-Form zu lassen. Das Entpacken ist bei mir ausgeschaltet und daher verstehe ich auch nicht, warum du die "exploded" Variante benötigst. Ist oft ein Hinweis auf suboptimaler Code:wink:
 
Darunter verstehst du, das die war-Datei NICHT ausgepackt wird, oder?
Jap.
Wenn das alles zutrifft, würde ich versuchen einen zweiten virtuellen Host anzulegen, dessen appBase auf dein Verzeichnis (C:\temp\webapps\myApp) zeigt. Ich rate übrigens dazu, die context.xml INNERHALB der war-Datei unter /META-INF/context.xml zu packen.
Hört sich gut an, so kann ich das aber nicht machen, da ich nichts an der "Struktur" ändern will/kann/darf.
PS: Ich versuche immer eine Webapplikation laufen in "eingepackter" war-Form zu lassen. Das Entpacken ist bei mir ausgeschaltet und daher verstehe ich auch nicht, warum du die "exploded" Variante benötigst. Ist oft ein Hinweis auf suboptimaler Code
Keiner ist perfekt was 😳. Ist aber IMHO kein Beinbruch, wenn man gewillt ist sich zu verbessern.

Ich werde jetzt versuchen die .war Datei "manuel" zu entpacken. Sollte denke ich möglich sein, Input-/Outputstream und das ganze in einer while, oder irre ich mich und kann das gleich sein lassen?
 
Eine war-Datei ist ja auch "nur" eine Zip-Datei.

Also kannst du die mit einem Script einfach auspacken. Ich würde da kein Java einsetzen.
 
Hallo turtle,
danke für deine Hilfe.
Hab mir für's auspacken doch eine kleine java-routine gebastellt.
Wie du schon gesagt hast, war-Datein ist ja nichts anderes als eine zip-Datei, java-api war da sehr hilfreich.
Noch mal danke :toll:

Alexius
 

Neue Themen


Zurück
Oben