错误:
2018-11-12 18:25:31.221 INFO 3028 --- [ Thread-3]
com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2018-11-12 18:25:31.223 INFO 3028 --- [ Thread-3] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
为什么会出现这个错误?
我该如何解决?
您的类路径中似乎没有任何嵌入式 Web 服务器。
尝试通过 spring-boot-starter-web
依赖项添加
Tomcat。
Maven
pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
摇篮
build.gradle
:
implementation 'org.springframework.boot:spring-boot-starter-web'
检查是否有不使用的jpa依赖并移除。还要添加 tomcat 和 spring-boot-starter-web 的依赖项
删除
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
如果不存在则添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
我的问题通过注释掉这个依赖关系得到解决:
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-tomcat</artifactId>-->
<!-- <scope>provided</scope>-->
<!-- </dependency>-->
如果仍然遇到错误,请尝试仅评论
我删除
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
它有效
在我的情况下,我正在学习一本关于 Kotlin 的书,在关于将 Spring 与 Kotlin 结合使用的章节中。我使用 Spring Initializr 设置了 gradle 项目。我能够从 IntelliJ IDEA ide 中的 gradle 选项卡进行 gradle clean 和 gradle build,没有任何问题。然后,我尝试使用 MyApplication.kt 中“fun main()”顶级函数旁边的“run MyApplicationKt”来运行该项目。 spring boot 项目起初启动正常,但正如在原始发布者的示例中发现的那样,Hikari 数据源关闭,并且 spring boot 本身停止了。
2020-11-10 22:29:46.868 INFO 19536 --- [ main] c.agiledeveloper.todo.TodoApplicationKt : Started TodoApplicationKt in 2.819 seconds (JVM running for 3.431)
2020-11-10 22:30:47.606 INFO 19536 --- [extShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2020-11-10 22:30:47.607 INFO 19536 --- [extShutdownHook] .SchemaDropperImpl$DelayedDropActionImpl : HHH000477: Starting delayed evictData of schema as part of SessionFactory shut-down'
2020-11-10 22:30:47.610 INFO 19536 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
2020-11-10 22:30:47.610 INFO 19536 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...
2020-11-10 22:30:47.615 INFO 19536 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.
问题是我是 Gradle 的新手,解决方法是避免上述情况,而是转到 Gradle 选项卡 > 任务 > 应用程序 > bootRun,这会在避免关闭的同时运行应用程序。然后我可以使用我正在使用的 curl 命令访问我的 RESTful Web 服务运行项目。
作为参考,为什么 curl 命令对我的 spring gradle REST 项目不起作用:Curl:连接被拒绝
检查你是否有
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </dependency>
在你的 pom.xml 中,删除它
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
我删除了这种依赖,它对我有用!
对我来说,它在删除以下依赖项后有效:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>
检查你是否有
spring-boot-starter-web
依赖pom.xml
如果没有,则通过将以下依赖项添加到 pom.xml
. 来添加它
如果您不打算以任何方式使用它,则无需添加 tomcat。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
我在我的应用程序中遇到了同样的错误,我删除了 application.properties 文件中的代码块
spring.main.web-application-type=none
,问题就解决了。