Spring Boot应用每15分钟自动重启问题求助
Spring Boot 2.7.14 每15分钟自动重启问题排查
我的Spring Boot 2.7.14应用存在每15分钟自动重启的异常。已移除pom.xml中的devtools依赖,也未手动使用ShutdownHook,但问题仍未解决。
当前使用的依赖
- starter-actuator
- data-jdbc、data-jpa
- web-service
- starter-openfeign
- wsdl4j、jpos
- lombok
- springdoc-openapi-ui
- jasypt-spring-boot-starter
重启日志
2024-4-10 07:15:01.170 INFO [SpringApplicationShutdownHook] o.s.o.j.LocalContainerEntityManagerFactoryBean - 正在关闭持久化单元'default'的JPA实体管理器工厂 2024-4-10 07:15:01.175 INFO [SpringApplicationShutdownHook] c.z.h.HikariDataSource - HikariPool-1 - 开始关闭... 2024-4-10 07:15:01.214 INFO [SpringApplicationShutdownHook] c.z.h.HikariDataSource - HikariPool-1 - 关闭完成。 2024-4-10 07:15:09.194 INFO [main] h.a.T2tAdapterApplication - 正在启动T2tAdapterApplication v1.0.1,使用Java 1.8.0_212,运行在T2TAdapter上,PID为103349(/opt/t2t/t2t-adapter-v2-1.0.0.jar由root用户在/opt/t2t目录启动) 2024-4-10 07:15:09.196 INFO [main] h.a.T2tAdapterApplication - 未设置激活的配置文件,回退到1个默认配置文件:"default" 2024-4-10 07:15:11.263 INFO [main] o.s.d.r.c.RepositoryConfigurationDelegate - 发现多个Spring Data模块,进入严格仓库配置模式 2024-4-10 07:15:11.265 INFO [main] o.s.d.r.c.RepositoryConfigurationDelegate - 在DEFAULT模式下引导Spring Data JDBC仓库。 2024-4-10 07:15:11.284 INFO [main] o.s.d.r.c.RepositoryConfigurationDelegate - Spring Data仓库扫描完成,耗时12毫秒。找到0个JDBC仓库接口。 2024-4-10 07:15:11.298 INFO [main] o.s.d.r.c.RepositoryConfigurationDelegate - 发现多个Spring Data模块,进入严格仓库配置模式 2024-4-10 07:15:11.312 INFO [main] o.s.d.r.c.RepositoryConfigurationDelegate - 在DEFAULT模式下引导Spring Data JPA仓库。 2024-4-10 07:15:11.321 INFO [main] o.s.d.r.c.RepositoryConfigurationDelegate - Spring Data仓库扫描完成,耗时3毫秒。找到0个JPA仓库接口。 2024-4-10 07:15:11.598 INFO [main] o.s.c.c.s.GenericScope - BeanFactory ID=460aeb77-e91f-3cb1-99fe-ad862db90893 2024-4-10 07:15:11.684 INFO [main] c.u.j.c.EnableEncryptablePropertiesBeanFactoryPostProcessor - 正在处理PropertySource实例 2024-4-10 07:15:11.776 INFO [main] c.u.j.EncryptablePropertySourceConverter - 正在将PropertySource configurationProperties [org.springframework.boot.context.properties.source.ConfigurationPropertySourcesPropertySource]转换为AOP代理 2024-4-10 07:15:11.779 INFO [main] c.u.j.EncryptablePropertySourceConverter - 正在将PropertySource servletConfigInitParams [org.springframework.core.env.PropertySource$StubPropertySource]转换为EncryptablePropertySourceWrapper 2024-4-10 07:15:11.779 INFO [main] c.u.j.EncryptablePropertySourceConverter - 正在将PropertySource servletContextInitParams [org.springframework.core.env.PropertySource$StubPropertySource]转换为EncryptablePropertySourceWrapper 2024-4-10 07:15:11.780 INFO [main] c.u.j.EncryptablePropertySourceConverter - 正在将PropertySource systemProperties [org.springframework.core.env.PropertiesPropertySource]转换为EncryptableMapPropertySourceWrapper 2024-4-10 07:15:11.780 INFO [main] c.u.j.EncryptablePropertySourceConverter - 正在将PropertySource systemEnvironment [org.springframework.boot.env.SystemEnvironmentPropertySourceEnvironmentPostProcessor$OriginAwareSystemEnvironmentPropertySource]转换为EncryptableMapPropertySourceWrapper 2024-4-10 07:15:11.780 INFO [main] c.u.j.EncryptablePropertySourceConverter - 正在将PropertySource random [org.springframework.boot.env.RandomValuePropertySource]转换为EncryptablePropertySourceWrapper 2024-4-10 07:15:11.780 INFO [main] c.u.j.EncryptablePropertySourceConverter - 正在将PropertySource cachedrandom [org.springframework.cloud.util.random.CachedRandomPropertySource]转换为EncryptablePropertySourceWrapper 2024-4-10 07:15:11.780 INFO [main] c.u.j.EncryptablePropertySourceConverter - 正在将PropertySource springCloudClientHostInfo [org.springframework.core.env.MapPropertySource]转换为EncryptableMapPropertySourceWrapper 2024-4-10 07:15:11.780 INFO [main] c.u.j.EncryptablePropertySourceConverter - 正在将PropertySource 配置资源'file [config/application.properties]'通过路径'optional:file:./config/' [org.springframework.boot.env.OriginTrackedMapPropertySource]转换为EncryptableMapPropertySourceWrapper 2024-4-10 07:15:11.780 INFO [main] c.u.j.EncryptablePropertySourceConverter - 正在将PropertySource 配置资源'class path resource [application.properties]'通过路径'optional:classpath:/' [org.springframework.boot.env.OriginTrackedMapPropertySource]转换为EncryptableMapPropertySourceWrapper 2024-4-10 07:15:11.894 INFO [main] o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker - Bean 'org.springframework.ws.config.annotation.DelegatingWsConfiguration'的类型为[org.springframework.ws.config.annotation.DelegatingWsConfiguration$$EnhancerBySpringCGLIB$$eb67ccdd],不符合所有BeanPostProcessors的处理条件(例如:不符合自动代理条件) 2024-4-10 07:15:11.971 INFO [main] o.s.w.s.a.s.AnnotationActionEndpointMapping - 支持[WS-Addressing August 2004, WS-Addressing 1.0] 2024-4-10 07:15:11.985 INFO [main] c.u.j.f.DefaultLazyPropertyFilter - 未找到名称为'encryptablePropertyFilter'的自定义Property Filter Bean。初始化默认Property Filter 2024-4-10 07:15:12.215 INFO [main] c.u.j.r.DefaultLazyPropertyResolver - 未找到名称为'encryptablePropertyResolver'的自定义Property Resolver Bean。初始化默认Property Resolver 2024-4-10 07:15:12.221 INFO [main] c.u.j.d.DefaultLazyPropertyDetector - 未找到名称为'encryptablePropertyDetector'的自定义Property Detector Bean。初始化默认Property Detector 2024-4-10 07:15:12.596 INFO [main] o.s.b.w.e.t.TomcatWebServer - Tomcat已初始化,端口为:8090 (http) 2024-4-10 07:15:12.651 INFO [main] o.a.c.c.StandardService - 正在启动服务[Tomcat] 2024-4-10 07:15:12.652 INFO [main] o.a.c.c.StandardEngine - 正在启动Servlet引擎:[Apache Tomcat/9.0.78] 2024-4-10 07:15:12.754 INFO [main] o.a.c.c.C.[.[.[/] - 正在初始化Spring嵌入式WebApplicationContext 2024-4-10 07:15:12.754 INFO [main] o.s.b.w.s.c.ServletWebServerApplicationContext - 根WebApplicationContext:初始化完成,耗时3469毫秒 2024-4-10 07:15:12.927 INFO [main] c.u.j.e.DefaultLazyEncryptor - 未找到名称为'jasyptStringEncryptor'的自定义String Encryptor Bean。初始化默认String Encryptor 2024-4-10 07:15:12.948 INFO [main] c.u.j.e.DefaultLazyEncryptor - 未找到属性jasypt.encryptor.keyObtentionIterations的加密器配置,使用默认值:1000 2024-4-10 07:15:12.949 INFO [main] c.u.j.e.DefaultLazyEncryptor - 未找到属性jasypt.encryptor.poolSize的加密器配置,使用默认值:1 2024-4-10 07:15:12.949 INFO [main] c.u.j.e.DefaultLazyEncryptor - 未找到属性jasypt.encryptor.providerName的加密器配置,使用默认值:null 2024-4-10 07:15:12.949 INFO [main] c.u.j.e.DefaultLazyEncryptor - 未找到属性jasypt.encryptor.providerClassName的加密器配置,使用默认值:null 2024-4-10 07:15:12.949 INFO [main] c.u.j.e.DefaultLazyEncryptor - 未找到属性jasypt.encryptor.saltGeneratorClassname的加密器配置,使用默认值:org.jasypt.salt.RandomSaltGenerator 2024-4-10 07:15:12.951 INFO [main] c.u.j.e.DefaultLazyEncryptor - 未找到属性jasypt.encryptor.stringOutputType的加密器配置,使用默认值:base64 2024-4-10 07:15:13.853 INFO [main] o.h.j.i.u.LogHelper - HHH000204: 正在处理PersistenceUnitInfo [名称: default] 2024-4-10 07:15:13.996 INFO [main] o.h.Version - HHH000412: Hibernate ORM核心版本5.6.15.Final 2024-4-10 07:15:14.471 INFO [main] o.h.a.c.Version - HCANN000001: Hibernate Commons Annotations {5.1.2.Final} 2024-4-10 07:15:14.755 INFO [main] c.z.h.HikariDataSource - HikariPool-1 - 正在启动... 2024-4-10 07:15:14.761 WARN [main] c.z.h.u.DriverDataSource - 注册的驱动driverClassName=oracle.jdbc.driver.OracleDriver未找到,尝试直接实例化。 2024-4-10 07:15:15.767 INFO [main] c.z.h.HikariDataSource - HikariPool-1 - 启动完成。 2024-4-10 07:15:15.823 INFO [main] o.h.d.Dialect - HHH000400: 使用方言:org.hibernate.dialect.Oracle10gDialect 2024-4-10 07:15:16.792 INFO [main] o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000490: 使用JtaPlatform实现:[org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform] 2024-4-10 07:15:16.834 INFO [main] o.s.o.j.LocalContainerEntityManagerFactoryBean - 已初始化持久化单元'default'的JPA实体管理器工厂 2024-4-10 07:15:17.918 WARN [main] o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view默认已启用。因此,视图渲染期间可能会执行数据库查询。请显式配置spring.jpa.open-in-view以禁用此警告 2024-4-10 07:15:20.425 INFO [main] o.s.b.a.e.w.EndpointLinksResolver - 在基础路径'/actuator'下暴露1个端点 2024-4-10 07:15:20.519 INFO [main] o.s.b.w.e.t.TomcatWebServer - Tomcat已启动,端口为:8090 (http),上下文路径为''
排查方向
- 检查外部进程:确认是否有定时任务(如cron)或监控工具(如systemd、supervisor)在自动重启应用。查看系统定时任务列表,或检查应用的守护进程配置。
- JVM异常退出:查看系统日志(如/var/log/messages、dmesg),确认应用是否因OOM、内存溢出、线程死锁等问题被系统kill。添加JVM参数
-XX:+HeapDumpOnOutOfMemoryError和-XX:HeapDumpPath=/path/to/dump捕获堆转储文件分析。 - 配置文件变化:应用重启前是否有配置文件被修改?Spring Boot默认会监控配置文件变化触发重启,部分第三方组件也可能实现类似逻辑。检查
spring.config.additional-location指向的目录是否有文件更新。 - 依赖冲突或组件异常:检查jasypt-spring-boot-starter是否存在版本冲突,或是否有组件内部触发了应用重启。临时移除非核心依赖(如jasypt、springdoc),观察问题是否消失。
- 数据库连接问题:日志中提到Oracle驱动未找到,虽启动成功,但可能存在数据库连接不稳定导致的应用重启。检查数据库连接池配置,增加连接超时、重试参数,查看数据库侧的连接日志。
内容的提问来源于stack exchange,提问作者Nguyen Ha
相关产品推荐
相关产品推荐

