# Tomcat deployed nicht



## Alexius (11. Sep 2014)

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: 

```
<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.


----------



## turtle (12. Sep 2014)

Du schreibst etwas von  docBase. Daher zeig bitte deine context.xml und verifiziere, ob deine docBase einen absoluten Pfad verwendet.


----------



## Alexius (12. Sep 2014)

Hallo turtle, 

meine .xml sieht so aus: 

```
<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.


----------



## turtle (12. Sep 2014)

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:


----------



## Alexius (12. Sep 2014)

> 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?


----------



## turtle (12. Sep 2014)

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.


----------



## Alexius (17. Sep 2014)

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


----------

