触发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依赖是根据演示 - 并且它成功运行 - 这就是为什么服务在随机时间停止之后停止的原因。
我用于春季启动的日志记录设置是
logging.level.org.springframework.web = DEBUG
logging.level.org.hibernate = ERROR
logging.file = /home/REST/Logging.log
答案 0 :(得分:0)
根本原因是我与MySQL的紧密联系
spring.xxx.datasource.testOnBorrow=true
spring.xxx.datasource.validationQuery=SELECT 1
此处有更多详情https://docs.spring.io/spring-ldap/docs/1.3.2.RELEASE/reference/html/pooling.html