Приложение REST для весенней загрузки, развернутое как WAR на Tomcat, не работает - PullRequest
0 голосов
/ 09 ноября 2019

Создано REST-приложение с весенней загрузкой.

Запуск от имени загрузочного приложения Spring
Во время его запуска в режиме затмения как spring boot application. Он отлично работает.
REST API работают с URL - http://localhost:8080/schools

Развертывание как WAR на tomcat

Я выполнил следующие шаги

  1. Расширяется основной класс SpringServletContainerInitializer
    @SpringBootApplication
    public class RmsBackendApplication extends SpringServletContainerInitializer {

        public static void main(String[] args) {
            SpringApplication.run(RmsBackendApplication.class, args);
        }
    }
Добавлена ​​запись начального класса в pom.xml
    <properties>
        <java.version>1.8</java.version>
        <start-class>com.codingParkFun.rmsbackend.RmsBackendApplication</start-class>
    </properties>
Добавлена ​​зависимость от начинающего кота
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

В немногих документах указано переопределение configure метод SpringServletContainerInitializer. Но в моем случае SpringServletContainerInitializer не имеет configure метода. Я скачал пружинные инструменты 4.0

Сгенерированный пакет с maven install. Военный пакет создается с именем rms-0.0.1-SNAPSHOT.war

Развернутый военный пакет на tomcat (версия 9.0.27)

Доступ к REST APIURL - http://localhost:8080/rms-0.0.1-SNAPSHOT/schools

Вывод enter image description here

Журналы локального хоста Tomcat выглядят следующим образом:
09-Nov-2019 11:13:31.013 INFO [main] org.apache.catalina.core.ApplicationContext.log 1 Spring WebApplicationInitializers detected on classpath
09-Nov-2019 11:13:32.048 INFO [main] org.apache.catalina.core.ApplicationContext.log ContextListener: contextInitialized()
09-Nov-2019 11:13:32.048 INFO [main] org.apache.catalina.core.ApplicationContext.log SessionListener: contextInitialized()
09-Nov-2019 11:13:32.052 INFO [main] org.apache.catalina.core.ApplicationContext.log ContextListener: attributeAdded('StockTicker', 'async.Stockticker@6231bb88')
09-Nov-2019 11:16:44.566 INFO [Thread-4] org.apache.catalina.core.ApplicationContext.log SessionListener: contextDestroyed()
09-Nov-2019 11:16:44.566 INFO [Thread-4] org.apache.catalina.core.ApplicationContext.log ContextListener: contextDestroyed()
09-Nov-2019 11:19:59.676 INFO [main] org.apache.catalina.core.ApplicationContext.log 1 Spring WebApplicationInitializers detected on classpath
09-Nov-2019 11:20:12.722 INFO [main] org.apache.catalina.core.ApplicationContext.log ContextListener: contextInitialized()
09-Nov-2019 11:20:12.723 INFO [main] org.apache.catalina.core.ApplicationContext.log SessionListener: contextInitialized()
09-Nov-2019 11:20:12.728 INFO [main] org.apache.catalina.core.ApplicationContext.log ContextListener: attributeAdded('StockTicker', 'async.Stockticker@2420e962')
09-Nov-2019 11:27:44.515 INFO [main] org.apache.catalina.core.ApplicationContext.log 1 Spring WebApplicationInitializers detected on classpath
09-Nov-2019 11:27:45.490 INFO [main] org.apache.catalina.core.ApplicationContext.log ContextListener: contextInitialized()
09-Nov-2019 11:27:45.490 INFO [main] org.apache.catalina.core.ApplicationContext.log SessionListener: contextInitialized()
09-Nov-2019 11:27:45.494 INFO [main] org.apache.catalina.core.ApplicationContext.log ContextListener: attributeAdded('StockTicker', 'async.Stockticker@1c7da28')
09-Nov-2019 11:38:48.705 INFO [http-nio-8080-exec-7] org.apache.catalina.core.ApplicationContext.log 1 Spring WebApplicationInitializers detected on classpath

Не уверен, пока REST API приложения не работает. Пожалуйста, руководство.

1 Ответ

1 голос
/ 09 ноября 2019

Вам необходимо расширить SpringBootServletInitializer , а не SpringServletContainerInitializer . Затем вы можете переопределить метод конфигурации, как вы сказали в шаге 4, например:

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(RmsBackendApplication.class);
}

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...