Aplikacja Spring Boot na zewnętrznym Apache Tomcat

Aplikacja Spring Boot na zewnętrznym Apache Tomcat

Wbudowany kontener servletów w Spring Boot ułatwia projektowanie aplikacji uwalniając programistę od konieczności utrzymywania i konfiguracji dodatkowego serwera. Wadą tego rozwiązania jest to, że nie postawimy np. na jednym serwerze więcej niż jednej aplikacji. Co zatem trzeba zrobić, aby wdrożyć swój projekt na zewnętrznym serwerze? W pliku pom.xml należy wyłączyć wbudowanego Tomcata:

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
     <exclusions>
         <exclusion>
             <artifactId>tomcat-embed-el</artifactId>
             <groupId>org.apache.tomcat.embed</groupId>
         </exclusion>
         <exclusion>
             <artifactId>tomcat-embed-core</artifactId>
             <groupId>org.apache.tomcat.embed</groupId>
         </exclusion>
         <exclusion>
             <artifactId>tomcat-embed-websocket</artifactId>
             <groupId>org.apache.tomcat.embed</groupId>
         </exclusion>
     </exclusions>
</dependency>

oraz zmodyfikować klasę startową nadpisując metodę configure z klasy bazowej SpringBootServletInitializer:

@SpringBootApplication
public class UnicodeConverterApplication extends SpringBootServletInitializer{
 
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(UnicodeConverterApplication.class);
    }
    public static void main(String[] args) throws Exception {
        SpringApplication.run(UnicodeConverterApplication.class, args);
    }
}

ponadto należy ustawić sposób pakowania aplikacji na war:

<packaging>war</packaging>

Uwaga: należy do wdrażania swojej aplikacji używać pliku .original. Ten drugi posiada również spakowane biblioteki wbudowanego Tomcata – katalog ./lib-provided co jest w tym przypadku zbędne.

Zobacz też film na YouTube!

Leave a comment

Your email address will not be published.


*