Miałem nadzieję połączyć/osadzić Tomcat i moją aplikację internetową jako onejar aka słoika tłuszczu, ale nie jestem pewien, czy jest to możliwe. Jest to możliwe z Jetty using the Maven Shade plugin i Winstone, ale spróbowałem czegoś podobnego z Tomcat 7 i nie mogłem go załadować poprawnie. Celem jest zrobienie czegoś takiego: java -jar mywebapp.jar
.Osadź Tomcat z aplikacją w jednym tłustym słoju
Problem polega na tym, że Tomcat chce ładować rzeczy z systemu plików, a nie ze ścieżki klas. To znaczy, że możesz osadzić Tomcat, ale będzie oczekiwał, że twoje pliki WAR będą dostępne jako pliki.
Próbowałem wielu technik z poprzedniego SO Posts for embedding Tomcat 6 & 7. Mimo że mogę je osadzić i uruchomić, nie może uzyskać dostępu do mojej aplikacji.
Domyślam się, że jedną z opcji jest JAR podczas bootowania, więc AppBase
i DocBase
są plikami w systemie plików. Jeszcze tego nie próbowałem, ale będę.
Istnieje duplikat pytanie tutaj, że w końcu znalazłem: Self-contained war file with Tomcat embedded? (proszę głosować zamknąć jako duplikat)
Zamieść tomcat w webapp ... po co? – aviad
Przepraszam, że tęsknię za słowem. Miałem na myśli połączenie, a nie osadzanie w samej aplikacji internetowej. Ideą słoika jest uproszczenie DevOps (http://dropwizard.codahale.com/getting-started/#building-fat-jars). Wszystko czego potrzebujesz do uruchomienia aplikacji to 'java -jar my-webapp.jar'. –
Oto kolejny przykład tworzenia Fat Jar: http://one-jar.sourceforge.net/ –