Я обновляю свое приложение с Spring 1.5.x до Spring 2.0.5. Несмотря на то, что все шаги выполнены и необходимые модули также обновлены, приложение запускается успешно, но через 30-40 секунд внезапно дает сбой. Странно то, что об ошибках не сообщается. Просто следующие строки:
[INFO] AnnotationConfigServletWebServerApplicationContext - Closing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@6b26e945: startup date [Wed Oct 31 12:23:59 GMT 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@5f9d02cb
[INFO] DefaultLifecycleProcessor - Stopping beans in phase 2147483647
[INFO] DefaultLifecycleProcessor - Stopping beans in phase 2147483547
[INFO] DefaultLifecycleProcessor - Stopping beans in phase 0
[INFO] EventDrivenConsumer - Removing {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel
[INFO] PublishSubscribeChannel - Channel 'filterprocessor-1.errorChannel' has 0 subscriber(s).
[INFO] EventDrivenConsumer - stopped _org.springframework.integration.errorLogger
[INFO] ThreadPoolTaskScheduler - Shutting down ExecutorService 'taskScheduler'
[INFO] IntegrationMBeanExporter - Unregistering JMX-exposed beans on shutdown
[INFO] IntegrationMBeanExporter - Unregistering JMX-exposed beans
[INFO] IntegrationMBeanExporter - Summary on shutdown: errorChannel
[INFO] IntegrationMBeanExporter - Summary on shutdown: nullChannel
[INFO] IntegrationMBeanExporter - Summary on shutdown: _org.springframework.integration.errorLogger.handler
[INFO] AnnotationMBeanExporter - Unregistering JMX-exposed beans on shutdown
[INFO] AnnotationMBeanExporter - Unregistering JMX-exposed beans
[INFO] ThreadPoolTaskExecutor - Shutting down ExecutorService 'appShellThreadPoolTaskExecutor'
Кажется, что AnnotationConfigServletWebServerApplicationContext представлен в Spring 2.0.x, и это имеет какое-то отношение к ошибке. Вторые мысли касаются tomcat, но я уже добавил эту зависимость:
compile 'org.springframework.boot:spring-boot-starter-web'
Обновлено: Публикация моего build.gradle
dependencies {
compileOnly(
"org.projectlombok:lombok:1.18.+",
)
compile 'org.springframework.boot:spring-boot-starter-web'
compile(
"org.springframework.boot:spring-boot-starter",
"org.springframework.cloud:spring-cloud-stream-reactive",
"org.springframework.boot:spring-boot-starter-hateoas",
//"org.springframework.cloud:spring-cloud-starter-eureka",
"io.projectreactor:reactor-core:3.2.2.RELEASE",
)
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-kubernetes-all', version: '0.3.0.RELEASE'
//compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-feign:', version:'1.4.0.RELEASE'
compile('org.springframework.cloud:spring-cloud-starter-sleuth')
compile group: 'com.google.guava', name: 'guava', version: '23.0'
compile group: 'org.springframework.data', name: 'spring-data-commons', version: '2.0.2.RELEASE'
testCompile group: 'ru.yandex.qatools.allure', name: 'allure-junit-adaptor', version: '1.5.4'
testCompile("org.springframework.boot:spring-boot-starter-test") {
exclude group : "junit" , module : "junit"
}
testCompile(
"org.springframework.cloud:spring-cloud-stream-test-support",
"org.skyscreamer:jsonassert:1.5.+",
'org.junit.jupiter:junit-jupiter-api',
)
testRuntimeOnly(
'org.junit.jupiter:junit-jupiter-engine',
)
testRuntime(
'org.junit.platform:junit-platform-launcher',
'org.junit.platform:junit-platform-runner',
)
testCompileOnly (
"org.projectlombok:lombok:1.18.+",
)
}
dependencyManagement {
imports {
mavenBom "org.springframework.boot:spring-boot-dependencies:2.0.3.RELEASE"
mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.RELEASE"
mavenBom "org.springframework.cloud.stream.app:app-starters-core-dependencies:2.0.1.RELEASE"
mavenBom "org.junit:junit-bom:5.3.1"
}
}
configurations.all {
exclude group: 'org.slf4j', module: 'slf4j-simple'
exclude group: "com.sun.jdmk", module: 'jmxtools'
exclude group: "com.sun.jmx", module: 'jmxri'
}
Опубликуйте свой полный POM
добавлен блок моих зависимостей
Возможно, вы неправильно загрузили новые зависимости или запускаете кешированную версию вашего приложения, запустите ./gradlew clean build
.
Это была проблема Spring Actuator HealthPoint. Предыдущая точка здоровья была: / manage / health.
В Spring 2.0.x это изменено на / actator / health.
И мой зонд живости Kubernetes пытался попасть по URL. 3 безуспешных попытки попасть / управлять / здоровье привели к выходу POD из строя.
Изменил белый список с на / активатор / здоровье, и это сработало
Добавьте полный вывод журнала. На данный момент информации слишком мало.