Ich hatte gehofft Tomcat und meine Web-App wie onejar aka Fettglas zu kombinieren/einbinden, aber ich bin mir nicht sicher, ob es möglich ist. Es ist möglich mit Jetty using the Maven Shade plugin und Winstone, aber ich habe etwas ähnliches mit Tomcat 7 versucht und konnte es nicht richtig laden. Das Ziel ist, in der Lage zu sein, etwas wie zu tun: java -jar mywebapp.jar
.Embed Tomcat mit App in einem dicken Glas
Das Problem ist, dass Tomcat Dinge aus dem Dateisystem und nicht aus dem Klassenpfad laden möchte. Das heißt, Sie können Tomcat einbetten, aber es wird erwartet, dass Ihre WAR-Dateien als Dateien verfügbar sind.
Ich habe viele der Techniken auf vorherige SO Posts for embedding Tomcat 6 & 7 versucht. Während ich es einbetten und starten kann, kann es nicht auf meine App zugreifen.
Ich denke, eine Option ist das JAR beim Booten entpacken sich selbst, so dass AppBase
und DocBase
Dateien auf dem Dateisystem sind. Ich habe das noch nicht ausprobiert, werde es aber tun.
Es ist ein Duplikat der Frage hier, dass ich endlich gefunden: Self-contained war file with Tomcat embedded? (bitte stimmen als Duplikat zu schließen)
einbinden tomcat in webapp ... what for? – aviad
Sorry, ich habe die Frage nicht formuliert. Ich meinte kombinieren und nicht in die Webanwendung selbst einbetten. Die Idee eines Fettglases ist [DevOps vereinfachen] (http://dropwizard.codahale.com/getting-started/#building-fat-jars). Alles, was Sie zum Ausführen der App benötigen, ist 'java -jar my-webapp.jar'. –
Hier ist ein weiteres Beispiel für die Erstellung von Fat Jar: http://one-jar.sourceforge.net/ –