Весеннее завершение загрузки приложения без каких-либо ошибок на консоли

Я создал весеннее загрузочное приложение, используя maven. Там, где я собрал исполняемый файл jar для приложения, я попытался запустить его в окнах уровня EC2, свободных от экземпляров, используя следующую команду
java -jar com-spring-boot-apps-0.0.1-SNAPSHOT.jar --server.port=8181 -Xdebug

Некоторое приложение не запускается, оно существует со следующими журналами на консоли.

log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.StandardServletEnvironment).
log4j:WARN Please initialize the log4j system properly.

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.3.RELEASE)

2018-07-11 13:55:50.762  INFO 2784 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2018-07-11 13:55:50.768  INFO 2784 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.31
2018-07-11 13:55:50.800  INFO 2784 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : Loaded APR based Apache Tomcat Native library [1.2.17] using APR version [1.6.3].
2018-07-11 13:55:50.803  INFO 2784 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
2018-07-11 13:55:50.805  INFO 2784 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true]
2018-07-11 13:55:52.060  INFO 2784 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : OpenSSL successfully initialized [OpenSSL 1.0.2o  27 Mar 2018]
2018-07-11 13:55:52.402  INFO 2784 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2018-07-11 13:55:52.532  INFO 2784 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]

Исключение:-

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'regionProvider': Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.aws.core.region.StaticRegionProvider]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: The region 'ap-south-1a' is not a valid region!

6 ответов

Commons-logging конфликтует с log4j. Я сталкивался с этим несколько раз, и каждый раз, исключая ведение журнала, помогло мне решить эту проблему. Рекомендую проверить дерево зависимостей.

mvn dependency:tree > module-dependency.txt

Затем исключите commons-loggin везде, где вы видите

            <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.apache</groupId>
                <artifactId>commons-io</artifactId>
            </exclusion>
        </exclusions>

Правильно ли указано название вашего региона?

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html

Регион "ap-south-1a" является неправильным регионом. Это должно быть "ap-south-1" по моему мнению. Вы можете проверить файл конфигурации в.aws dir, чтобы увидеть, правильно ли задан регион. Также проверьте правильность переменной среды AWS_DEFAULT_REGION, если она установлена.

https://docs.aws.amazon.com/general/latest/gr/rande.html

Вы можете корректно завершить работу приложения через JMX или HTTP, если конечная точка включена (добавьте endpoints.shutdown.enabled=true в файл application.properties).

/ shutdown - позволяет приложению корректно завершить работу. (по умолчанию не включено).

Из загрузочной документации Spring

Это сработало для меня после удаления cloud.aws.region.static=ap-south-1a из свойств application.properties и pom.xml.

Но в то же время, если я удаляю это свойство из настройки проекта моего локального компьютера, происходит сбой со следующей ошибкой

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'amazonS3': Invocation of init method failed; nested exception is java.lang.IllegalStateException: There is no EC2 meta data available, because the application is not running in the EC2 environment. Region detection is only possible if the application is running on a EC2 instance

В моем случае в файле pom.xml отсутствовала структура ведения журнала. Я использовал spring-boot-starter-parent версию 2.2.5.RELEASE. Чтобы решить проблему, что приложение не запущено, в pom.xml я добавил следующее:

      <dependency>
        <artifactId>logback-classic</artifactId>
        <groupId>ch.qos.logback</groupId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
Другие вопросы по тегам