为啥我的 Spring Boot Web 应用程序无法在 Gradle 中完全运行?
Posted
技术标签:
【中文标题】为啥我的 Spring Boot Web 应用程序无法在 Gradle 中完全运行?【英文标题】:Why does my Spring Boot web app not run completely in Gradle?为什么我的 Spring Boot Web 应用程序无法在 Gradle 中完全运行? 【发布时间】:2016-04-15 22:12:13 【问题描述】:我一直在尝试使用以下命令设置一个新的 Spring Boot Web 应用程序:
spring init --java-version=1.7 --build=gradle --packaging=war --groupId=me.psychopunch.lab.springboot --artifactId=sample --name=quickstart sample
但是,当我尝试使用 gradle bootRun
运行生成的代码时,我的构建没有完成,也没有抛出错误。我只得到:
...
2016-01-11 22:44:28.127 INFO 3579 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup
2016-01-11 22:44:28.260 INFO 3579 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2016-01-11 22:44:28.266 INFO 3579 --- [ main] com.example.QuickstartApplication : Started QuickstartApplication in 5.312 seconds (JVM running for 6.091)
> Building 80% > :bootRun
构建卡在 80% 左右。有时它是 83%、85% 等,但不会达到 100%。我在这里做错了什么?
【问题讨论】:
我从这里加载 Spring Boot 2.0 应用程序时遇到相同的症状:github.com/bijukunjummen/boot2-load-demo 【参考方案1】:Started QuickstartApplication in 5.312 seconds (JVM running for 6.091) 表明它实际上正在运行。
忽略 > Building 80% > :bootRun。当你终止 spring 进程时,一些更多的清理工作将在 gradle 中运行。
我有一个相当大的构建过程,我的打印 Started... 为 96%。 :)
这很正常。
【讨论】:
它对我不起作用。例如,当我定义一个控制器时,它会将我重定向到一个错误页面。 也许您的应用程序在某处有错误?它说什么?是404吗?您尝试在哪里访问该应用? 就我而言,我无法访问 localhost:8080 但确实可以访问“/greeting”端点,如本启动指南所示:spring.io/guides/gs/rest-service @VicTorious 你有“/”的控制器还是有一个 index.html 添加为静态资源?如果没有,那么您在尝试访问“/”时将得到 404。 @LakatosGyula 好吧,我只是按照上面提到的指南进行操作 - 所以不,我没有这些。我实际上认为,在这种情况下,我应该登陆某种“默认 Tomcat 页面”。以上是关于为啥我的 Spring Boot Web 应用程序无法在 Gradle 中完全运行?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Spring Boot 应用程序 pom 同时需要 spring-boot-starter-parent 和 spring-boot-starter-web?
为啥必须在 spring-boot 中为 web 应用程序提供单独的 @Controller 类文件?