在我的Springboot应用程序中,即使从日志消息中可以正常看到其余端点,我也遇到以下404错误。
我有一个带有以下主要类的springboot应用程序:-
package com.springbootbasic;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootBasicApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootBasicApplication.class, args);
}
}
以下是控制器类:-
package com.springbootbasic;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HomeController {
Logger logger = LoggerFactory.getLogger(HomeController.class);
@RequestMapping("/hello")
public String home(Model model) {
logger.info("Rest endpoint /hello is being hit correctly.");
return "index.html";
}
@RequestMapping("/home")
@ResponseBody
public String response() {
logger.info("Rest endpoint /home is being hit correctly.");
return "Very well done the rest end point is working fine.";
}
}
以上两个类位于同一包中,并且HomeController带有@Controller而不是@RestController注释。
在eclipse的src / main / public源文件夹中,我创建了以下index.html文件。
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Welcome from Home</title>
</head>
<body>
<h2>Hello World!</h2>
</body>
</html>
在浏览器中,当我点击网址http://localhost:8080/hello时 我收到以下错误:-
There was an unexpected error (type=Not Found, status=404).
No message available
但是日志消息是:-
2019-08-28 20:22:38.953 INFO 20864 --- [nio-8080-exec-1] c.springbootbasic.HomeController : Rest endpoint /hello is being hit correctly.
2019-08-28 20:22:52.179 INFO 20864 --- [nio-8080-exec-3] c.springbootbasic.HomeController : Rest endpoint /home is being hit correctly.
2019-08-28 20:25:20.858 INFO 20864 --- [nio-8080-exec-6] c.springbootbasic.HomeController : Rest endpoint /hello is being hit correctly.
该如何解决?
答案 0 :(得分:1)
问题是模板的名称。模板的名称为index,如果您点击http://localhost:8080/,则可以看到您的页面。我有同样的问题,如果您重命名index.html应该没问题。我不知道为什么会这样,这可能与spring-boot嵌入式服务器有关。
编辑:来自https://spring.io/guides/gs/serving-web-content/
index.html资源是特殊的,因为它用作“欢迎” 页”(如果存在),这意味着它将作为根 资源,即http://localhost:8080/
希望这会有所帮助。
答案 1 :(得分:1)
您应该创建Internal View Resolver并将其添加到您的配置适配器中