Jedna aplikacja dwa sposoby uruchomienia i ogromna różnica w wyniku aplikacji

0

Tworzę aplikację w Spring Boot https://github.com/JonkiPro/REST-Web-Services. Aplikacja może być uruchomiona na dwa sposoby. Pierwszy sposób to naturalnie klasa uruchomieniowa Spring Boot https://github.com/JonkiPro/REST-Web-Services/blob/master/web/src/main/java/com/web/WebApplication.java. Aplikacja kompiluje się bez problemu https://pastebin.com/xYTQtkp4. Wszystko działa tak jak trzeba. Zero zastrzeżeń. Perfekto.

Drugi sposób, to uruchomienie aplikacji przez klasę https://github.com/JonkiPro/REST-Web-Services/blob/master/war/src/main/java/com/war/WarApplication.java. (ten moduł generuje plik WAR do późniejszego umieszczenia na serwerze). I tutaj zaczyna się dramat. Aplikacja może i kompiluje się https://pastebin.com/D86wpghW, ale od razu w oczy rzuca się o połowę mniejszy kod kompilacji. I właśnie po uruchomieniu aplikacji w ten sposób wszystko przestaje działać. W wyniku kompilacji możemy zobaczyć, że aplikacja nie znajduje żadnych stworzonych przez nas beanów, nie mapuje żadnych adresów, nawet actuator, cofa Spring Security do ustawień domyślnych i każe się logować do aplikacji z generowanego hasła Using Generated security password: c7c7458d-a7f1-45e2-a871-007f80d4ea26 https://zapodaj.net/0a01ba8eee626.png.html, metoda, która po kompilacji ma dodać użytkownika admina do bazy również nie zostaje użyta https://github.com/JonkiPro/REST-Web-Services/blob/master/web/src/main/java/com/web/web/startup/InitAdmin.java, baza H2 z której korzystam również nie działa. Wszystko wysiada. Nie mam pojęcia czemu nic nie działa po uruchomieniu aplikacji w ten sposób. A przecież w tym module będę generował plik WAR do umieszczenia na serwerze. Szkoda tylko, że nic nie działa.

0

Hmm a jak Maven wygląda u ciebie? Popróbuj nim - packaging na war i z linii poleceń builda zrób, tylko chyba wtedy byś musiał odznaczyć wbudowanego Tomcata. Pewnie już patrzyłeś na to: https://www.mkyong.com/spring-boot/spring-boot-deploy-war-file-to-tomcat/

0

Właśnie za pomocą Gradle buduję w module war plik aplikacji z rozszerzeniem WAR. Wrzucam potem na Tomcat i jest to samo. Aplikacja jest w tym samym stanie gdy uruchamiam z IntellIj.

0

Może jeszcze pytanie. Po co w ogóle sobie zawracać głowę tym warem?
Make JAR not WAR

0

Zamiana

    public static void main(final String[] args) {
        SpringApplication.run(WarApplication.class, args);
    }

    @Override
    public SpringApplicationBuilder configure(final SpringApplicationBuilder application) {
        return application.sources(WarApplication.class);
    }

na

    public static void main(final String[] args) {
        SpringApplication.run(WebApplication.class, args);
    }

    @Override
    public SpringApplicationBuilder configure(final SpringApplicationBuilder application) {
        return application.sources(WebApplication.class);
    }

naprawiła problem, ale c.d. Błędy podczas uruchomienia aplikacji WAR na serwerze Tomcat

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