【发布时间】:2016-07-02 08:12:11
【问题描述】:
在触发 Spring Boot REST 服务后,该服务可以正常运行数小时,所有请求都正常运行,没有任何问题。发生的事情是一段时间后随机停止。查看日志时,我没有发现任何错误,除了应用程序已被破坏的信息。
一段时间后的日志
2016-03-09 17:07:33.488 INFO 28359 --- [Thread-12] ationConfigEmbeddedWebApplicationContext : Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5df2d54c: startup date [Wed Mar 09 10:45:18 UTC 2016]; root of context hierarchy
2016-03-09 17:07:33.490 INFO 28359 --- [Thread-12] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
2016-03-09 17:07:33.495 INFO 28359 --- [Thread-12] o.eclipse.jetty.server.ServerConnector : Stopped ServerConnector@585ebc93{SSL-HTTP/1.1}{0.0.0.0:8443}
2016-03-09 17:07:33.496 INFO 28359 --- [Thread-12] application : Destroying Spring FrameworkServlet 'dispatcherServlet'
2016-03-09 17:07:33.496 INFO 28359 --- [Thread-12] o.e.jetty.server.handler.ContextHandler : Stopped o.s.b.c.e.j.JettyEmbeddedWebAppContext@3d3969ea{/,file:/tmp/jetty-docbase.5267015092605924805.8443/,UNAVAILABLE}
Maven 依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty.orbit</groupId>
<artifactId>javax.servlet</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty.aggregate</groupId>
<artifactId>jetty-all</artifactId>
</exclusion>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.drill.exec</groupId>
<artifactId>drill-jdbc</artifactId>
<exclusions>
<exclusion>
<artifactId>hadoop-common</artifactId>
<groupId>org.apache.hadoop</groupId>
</exclusion>
<exclusion>
<artifactId>hadoop-client</artifactId>
<groupId>org.apache.hadoop</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<!-- used to update stopwatch -->
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.20.0-GA</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.drill</groupId>
<artifactId>drill-common</artifactId>
<exclusions>
<exclusion>
<artifactId>hadoop-common</artifactId>
<groupId>org.apache.hadoop</groupId>
</exclusion>
<exclusion>
<artifactId>hadoop-client</artifactId>
<groupId>org.apache.hadoop</groupId>
</exclusion>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
关于为什么 Spring Boot REST API 可能会停止的任何想法?我的 maven 依赖项是根据演示 - 并且它正在成功运行 - 这就是为什么服务在没有意义的随机时间后停止的原因。
我用于 Spring Boot 的日志记录设置是
logging.level.org.springframework.web = DEBUG
logging.level.org.hibernate = ERROR
logging.file = /home/REST/Logging.log
【问题讨论】:
-
会话是否有过期时间?
-
不,但如果是这种情况,我会在日志中发现休眠错误。
-
增加日志级别并检查导致关机的原因。由于它正在干净地关闭,我怀疑类似于对嵌入式 servlet 容器或 spring 容器的关闭请求。
-
日志记录是 logging.level.root=WARN logging.level.org.springframework.web=DEBUG logging.level.org.hibernate=ERROR - 它应该显示所有调试日志
-
每次都在同一时间停止吗?
标签: java maven spring-boot