2013-02-27 3 views
5

Mit Bezug auf tomcat and extracted files Ich habe server.xml zu auto deploy : true konfiguriert. Mein Name der War-Datei ist ROOT.war, da ich nach der site.com nicht will/subdir.Wie Tomcat die Kriegsdateien explodieren lassen

Aber ich sehe die .css .js .java oder .class-Dateien in/webappts/ROOT oder wo auch immer. (Ich habe sie in der ROOT.war und die Website läuft gut sie mit reflektierenden)

ich nur sehen .class- und .java in

/var/cache/tomcat7/Catalina/localhost/_/org/apache/jsp/ 

/var/cache/tomcat7/Catalina/localhost/_/WEB-INF/classes/ 

wie tomcat zu konfigurieren, um die WAR-Datei zu explodieren?

Update I

Ich habe Host name="localhost" appBase="/home/ubuntu/www" unpackWARs="true" autoDeploy="true" und ich nicht noch sehen Auspacken. Mein ROOT.war ist in/home/ubuntu/www

Update II

Ein Problem, das ich sehe ist, dass:

Feb 27, 2013 6:29:02 PM org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deploying web application archive /home/ubuntu/www/ROOT.war 
Feb 27, 2013 6:29:02 PM org.apache.catalina.startup.ContextConfig init 
SEVERE: Exception fixing docBase for context [] 
java.io.IOException: Unable to create the directory [/home/ubuntu/www/ROOT] 
     at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:100) 
     at org.apache.catalina.startup.ContextConfig.fixDocBase(ContextConfig.java:720) 
     at org.apache.catalina.startup.ContextConfig.init(ContextConfig.java:843) 

Wenn ich manuell make ROOT in/home/ubuntu/www/mit chmod 777. es gibt Fehler (nicht vorhanden)

+1

Sind die .css- und .js-Dateien tatsächlich in der WAR-Datei? (die .java Dateien sollte man dort nicht sehen ...) – ppeterka

+0

@pepperka ja sie sind – kevin

+0

Sorry wenn das albern klingt, aber läuft der Server? Ich bemerkte mit unserem Setup, wenn Sie die WAR-Datei in das Verzeichnis legen und den Server starten, den es erweitert (ich bin vielleicht weit weg von der Basis). – onaclov2000

Antwort

10

Ihr/home/ubuntu/www Ordner muss von Tomcat-Prozess beschreibbar sein. Der Besitzer und die Gruppe sollten tomcat6/tomcat7 sein (abhängig davon, welchen TC du verwendest). Wie folgt aus:

drwxrwxr-x 4 tomcat7 tomcat7 4096 Feb 27 14:08 webapps 

Sie sollten nicht chmod 777 der Ordner, dann ist dies ein Sicherheitsrisiko dar, wie Sie richtig vermutet. "chown tomcat7: tomcat7" sollte funktionieren.

+0

Super! Das hat mein Problem gelöst. Eine Anmerkung, ich benutze Tomcat 7 und musste verwenden: sudo chown tomcat: tomcat/var/lib/tomcat7/webapps / – TrippinBilly

1

Sie müssen sicherstellen, dass unpackWARs==true festgelegt ist.

Set auf true, wenn Sie Web-Anwendungen wünschen, die in der appBase Verzeichnis als Webanwendungsarchiv (WAR) Dateien abgelegt werden sollen in eine entsprechende Plattenverzeichnisstruktur entpackt, falsche solche Web-Anwendungen direkt laufen aus eine WAR-Datei. WAR-Dateien, die außerhalb der AppBase des Hosts liegen, werden nicht erweitert.

Quelle: http://tomcat.apache.org/tomcat-6.0-doc/config/host.html#Standard_Implementation

+0

Ich sehe Gegenteil, siehe Update bitte – kevin

+0

Stor siehe Update 2 bitte – kevin

+0

plus +1 auch für gültige Antwort. – kevin