获取 Spring-boot 应用程序的白标签错误
Posted
技术标签:
【中文标题】获取 Spring-boot 应用程序的白标签错误【英文标题】:Getting whitelabel error for Spring-boot application 【发布时间】:2020-06-22 16:27:18 【问题描述】:我是 Spring Boot 开发新手,请帮我解决以下错误
目录结构(仅包括重要文件的结构)
src
-main
-java
-com.example.handlingformsubmission
-Greeting.java
-GreetingController.java
-HandlingFormSubmissionApplication.java
-resources
-templates
-greeting.html
-result.html
-application.properties
-test
-java
-com.example.handlingformsubmission
-HandlingFormSubmissionApplicationTest.java
-build.gradle
在浏览器上运行时遇到这个错误
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Wed Mar 11 19:08:44 IST 2020
There was an unexpected error (type=Not Found, status=404).
No message available
当我终止或停止应用程序时
Execution failed for task ':HandlingFormSubmissionApplication.main()'.
> Process 'command '/usr/lib/jvm/java-11-amazon-corretto/bin/java'' finished with non-zero exit value 143
目前我使用的是springboot 2.2.2版
这是我的代码
build.gradle
plugins
id 'org.springframework.boot' version '2.2.2.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
id 'java'
id 'war'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories
mavenCentral()
dependencies
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation('org.springframework.boot:spring-boot-starter-test')
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
test
useJUnitPlatform()
HandlingFormSubmissionApplication.java
package com.example.handlingformsubmission;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan(basePackages = "com.example.handlingformsubmission.greeting")
@SpringBootApplication
public class HandlingFormSubmissionApplication
public static void main(String[] args)
SpringApplication.run(HandlingFormSubmissionApplication.class, args);
GreetingController.java
package com.example.handlingformsubmission.greeting;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
@Controller
public class GreetingController
@GetMapping("/greeting")
public String greetingForm(Model model)
model.addAttribute("greeting", new Greeting());
return "greeting";
@PostMapping("/greeting")
public String greetingSubmit(@ModelAttribute Greeting greeting, Model model)
model.addAttribute("greeting", greeting);
return "result";
application.properties
server.port=8000
greeting.html
<!DOCTYPE HTML>
<html xmlns:th="https://www.thymeleaf.org">
<head>
<title>Getting Started: Handling Form Submission</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Form</h1>
<form action="#" th:action="@/greeting" th:object="$greeting" method="post">
<p>Id: <input type="text" th:field="*id" /></p>
<p>Message: <input type="text" th:field="*content" /></p>
<p><input type="submit" value="Submit" /> <input type="reset" value="Reset" /></p>
</form>
</body>
</html>
结果.html
<!DOCTYPE HTML>
<html xmlns:th="https://www.thymeleaf.org">
<head>
<title>Getting Started: Handling Form Submission</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Result</h1>
<p th:text="'id: ' + $greeting.id" />
<p th:text="'content: ' + $greeting.content" />
<a href="/greeting">Submit another message</a>
</body>
</html>
【问题讨论】:
日志说什么?很高兴看到异常 @Thomas__ 我无法找出错误。我是这门课程的初学者 请阅读你为什么should not post screenshots of code or errors。 除非绝对必要,否则请不要将信息共享为图像。请参阅:meta.***.com/questions/303812/…、idownvotedbecau.se/imageofcode、idownvotedbecau.se/imageofanexception。 @nobar 我已经添加了目录结构。 【参考方案1】:问题中没有指定,但我猜你想执行GET http://localhost:8000/greeting
我不会修复你的表单,但是404可以通过修复你的@ComponentScan
来解决,例如...
// wrong: '.greeting' excludes the 'GreetingController'
@ComponentScan(basePackages = "com.example.handlingformsubmission.greeting")
// fixed: specifies a valid path that includes the controller
@ComponentScan(basePackages = "com.example.handlingformsubmission")
解决此问题后,您将能够继续前进并解决下一个问题:
出现意外错误(类型=内部服务器错误, 状态=500)。模板解析时出错(模板: "类路径资源 [templates/greeting.html]")
您也可以通过完全删除 @ComponentScan
来解决此问题 - 此初始场景不需要它。
【讨论】:
以上是关于获取 Spring-boot 应用程序的白标签错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用千分尺指定我想要在spring-boot中使用的度量标准的白名单