Kontener .war kończy działanie zaraz po jego uruchomieniu

0

Witam.

Wygenerowałem prostą apkę w Sprint Boot. Uruchamiam ją lokalnie na tomcacie i jest git. "Tworzę plik war" z jarem to samo.
Problem pojawia się kiedy chcę ją wdrożyć na kontener Dockera. Apka odpala i zaraz zamyka, więc nie mam do niej dostępu z przeglądarki (404)
Porty są przekierowane prawidłowo 8888:8080.
Gdyby ktoś wiedział o co chodzi to proszę o pomoc. Z góry dzięki.

Dockerfile

FROM tomcat
LABEL maintainer = "TEST DOCKER VOLUME 1"
MAINTAINER Marcin J
COPY target/mpj-snap.war /usr/local/tomcat/webapps/
CMD ["catalina.sh", "run"]

Logi

2023-06-29 00:00:55 28-Jun-2023 22:00:55.679 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name:   Apache Tomcat/10.1.10
2023-06-29 00:00:55 28-Jun-2023 22:00:55.687 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Jun 2 2023 18:11:59 UTC
2023-06-29 00:00:55 28-Jun-2023 22:00:55.687 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.1.10.0
2023-06-29 00:00:55 28-Jun-2023 22:00:55.687 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
2023-06-29 00:00:55 28-Jun-2023 22:00:55.688 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            5.10.102.1-microsoft-standard-WSL2
2023-06-29 00:00:55 28-Jun-2023 22:00:55.688 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
2023-06-29 00:00:55 28-Jun-2023 22:00:55.688 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /opt/java/openjdk
2023-06-29 00:00:55 28-Jun-2023 22:00:55.688 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           17.0.7+7
2023-06-29 00:00:55 28-Jun-2023 22:00:55.688 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Eclipse Adoptium
2023-06-29 00:00:55 28-Jun-2023 22:00:55.688 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/tomcat
2023-06-29 00:00:55 28-Jun-2023 22:00:55.688 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/tomcat
2023-06-29 00:00:55 28-Jun-2023 22:00:55.717 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
2023-06-29 00:00:55 28-Jun-2023 22:00:55.726 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
2023-06-29 00:00:55 28-Jun-2023 22:00:55.728 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
2023-06-29 00:00:55 28-Jun-2023 22:00:55.729 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
2023-06-29 00:00:55 28-Jun-2023 22:00:55.730 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
2023-06-29 00:00:55 28-Jun-2023 22:00:55.730 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
2023-06-29 00:00:55 28-Jun-2023 22:00:55.731 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
2023-06-29 00:00:55 28-Jun-2023 22:00:55.731 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util=ALL-UNNAMED
2023-06-29 00:00:55 28-Jun-2023 22:00:55.732 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
2023-06-29 00:00:55 28-Jun-2023 22:00:55.732 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
2023-06-29 00:00:55 28-Jun-2023 22:00:55.732 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
2023-06-29 00:00:55 28-Jun-2023 22:00:55.732 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
2023-06-29 00:00:55 28-Jun-2023 22:00:55.732 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
2023-06-29 00:00:55 28-Jun-2023 22:00:55.779 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [2.0.4] using APR version [1.7.0].
2023-06-29 00:00:55 28-Jun-2023 22:00:55.805 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 3.0.2 15 Mar 2022]
2023-06-29 00:00:56 28-Jun-2023 22:00:56.198 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
2023-06-29 00:00:56 28-Jun-2023 22:00:56.240 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [835] milliseconds
2023-06-29 00:00:56 28-Jun-2023 22:00:56.309 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
2023-06-29 00:00:56 28-Jun-2023 22:00:56.309 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/10.1.10]
2023-06-29 00:00:56 28-Jun-2023 22:00:56.363 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/usr/local/tomcat/webapps/mpj-snap.war]
2023-06-29 00:00:58 28-Jun-2023 22:00:58.301 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
2023-06-29 00:00:58 28-Jun-2023 22:00:58.393 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/mpj-snap.war] has finished in [2,030] ms
2023-06-29 00:00:58 28-Jun-2023 22:00:58.399 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
2023-06-29 00:00:58 28-Jun-2023 22:00:58.431 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [2190] milliseconds


1

W tym logu nie widzę patologii
Tomcat (taki tradycyjny) wyjęty z pudełka ma jeszcze 2-3 inne.

Filozofia dockerowa a filozofia WAR-ów to mówią że nie to.

1

Fat JAR - a budowany z tego samego drzewa soursów i tego samego pom.xml WAR - coś nie grało
WAR się dawał załadować ręcznie do żywego Tomcata, ale gdy już w nim był, Tomcat nie podnosił się poprawnie tak jak ma być, z apliakcjami.

Przyjąłem roboczą mglistą hipotezę, że zawarte tam dependencje (dla fat JAR-a) z kontenerem servletów włącznie - ale nigdy analizy nie pogłębiałem / nie dokończyłem

1

Wiem że to nie odpowiedź na pytanie, ale musisz tego Tomcata używać w ten prehistoryczny sposób? Skoro używasz Dockera, to czy jest Tomcat czy cokolwiek w środku jest nieistotne - weź normalnie zbuduj fatjara i odpalaj przez java -jar ... w kontenerze.

1

Spring Boot'a nie wrzuca się na Tomacata. Spring Boot w FatJar doda wybrany przez ciebie serwer http (domyślnie Tomcat albo Jetty).
W Dockerfile po prostu kopiujejsz fatjar'a do obrazu i ustawiasz entry point na java -jar app.jar i tyle.

Jak już bardzo chcesz powrót do przeszłości to: https://www.baeldung.com/spring-boot-war-tomcat-deploy

0

Sorki. Uruchomiony lokalnie w tomcat za pośrednictwem InteliJ działa poprawnie, natomiast wrzucony bezpośrednio do folderu ...\webapps w tomcat zdycha od razu. Zakładam jakiś błąd z konfiguracją.
Przepraszam za nieporozumienie. Tylko dalej nie wiem jak to ustawić :(

0
caprio napisał(a):

Sorki. Uruchomiony lokalnie w tomcat za pośrednictwem InteliJ działa poprawnie, natomiast wrzucony bezpośrednio do folderu ...\webapps w tomcat zdycha od razu.

Czy chciałeś:
"... natomiast po wrzuceniu WAR bezpośrednio do folderu ...\webapps - Tomcat zdycha od razu."

Bo gramatycznie ma to dziwną semantykę

EDIT:
Rozumienie alternatywne,(co więcej, nie przypominam sobie abym spotkał): Tomcat żyje, po cichu/niejasno zabijana jest aplikacja WAR

EDIT2:
Dla mnie niewyobrażalna jest sytuacja zabicia się Tomcata / zabicia WAR w Tomcacie bez pozostawienia wpisów. Sorry, ale jak kombinujesz inaczej niz reszta branży, to musisz sam siebie wesprzeć, a nie widać ku temu wkładu

0

Pomińmy temat ze spring bootem i dockerem. Wrzucam starą apkę napisaną w spring mvc, która działała na java 8. Na java 11 już nie działa prawidłowo. Tomcat odpala, apka też, ale nie ma do niej dostępu z poziomu przeglądarki. Może ktoś podać link do prostej apki spring mvc napisanej dla java 11 (łącznie z konfiguracją maven)?

Chcę sprawdzić czy to nie problem z jakąś konfiguracją.

Pozdrawiam.

0
caprio napisał(a):

Pomińmy temat ze spring bootem i dockerem. Wrzucam starą apkę napisaną w spring mvc, która działała na java 8. Na java 11 już nie działa prawidłowo. Tomcat odpala, apka też, ale nie ma do niej dostępu z poziomu przeglądarki.

Prawidłowo ale jednak nie. Aha
BTW widziałem milion lat temu na managerze Tomcata alkilację w taki dziwnym stanie. Co więcej, ma on swoją nazwę, bo standard servletu to określa.

Zgadnij gdzie sie szuka wyjaśnień problemu?

Wycofuję się z wątku - tobie nie da się pomóc.

Może ktoś podać link do prostej apki spring mvc napisanej dla java 11 (łącznie z konfiguracją maven)?

Chcę sprawdzić czy to nie problem z jakąś konfiguracją.

Dzióbiesz problem na oślep jak rozzłoszczony wróbelek. Mityczna "dobra aplikacja" i mityczna "zła", jak dobry i zły policjant.

NIE MA czegoś takiego jak napisanie kodu aplikacji WAR która by się stała magicznie niekompatybilna z nowszą wersją Javy
Z jednym zastrzeżeniem.
Pomiędzy 8 a 11 była Java 9, wprowadziła moduły. Był krótki (rok?) okres w branży gdzie wielkie złożone projekty na to cierpiały, pamiętam Netbeans kilka mc nie działał na 9, aż do następnego wydania.
Ale to nic z tych rzeczy, które programista WAR, ty albo ja, by dotykał (co więcej, w WAR nie da sie użyć modułów w sensie Javy 9, standard na to milczy)

Zupełnie źle celujesz problem. jesli to apka springowa, obstawiam róznica miedzy przypadkami jest w archaicznej wersji Spring Boota

1 użytkowników online, w tym zalogowanych: 0, gości: 1