springboot请求controller返回Whitelabel Error Page

解决的办法: 
1、把自建的controller类放到启动类同一级目录下(不建议这样做)。

2、把启动类@RestController @EnableAutoConfiguration注解改成@SpringBootApplication。

3、启动类@RestController @EnableAutoConfiguration注解再加上@ComponentScan注解。

使用springboot扫描的两种注解配置方式: 
1、@Controller 
  @EnableAutoConfiguration 
  @ComponentScan

2、@SpringBootApplication

总结:@SpringBootApplication注解等价于以默认属性使用@Configuration,@EnableAutoConfiguration和@ComponentScan

引用https://blog.youkuaiyun.com/Fandly168/article/details/73302281

发现问题还是没解决,后方法上加入@ResponseBody后成功返回数据,但是数据是json类型

因为我这个项目只是提供服务,所以我的已经解决,但是考虑到以后可能要返回页面,就找了下原因

/**
 * pom.xml文件
 */
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

查看pom是否少了这些包,就可以解决不加@ResponseBody也能访问的问题

### Spring Boot Whitelabel Error Page 404 的解决方案 Spring Boot 中出现 `Whitelabel Error Page` 和 `HTTP Status 404` 是常见的错误之一,通常表明应用程序无法找到匹配的请求映射。以下是可能导致该问题的原因以及对应的解决方法: #### 可能原因及解决办法 1. **控制器类未被扫描到** 如果控制器所在的包不在主应用启动类所在包及其子包范围内,则 Spring Boot 不会自动扫描并加载这些控制器类。可以通过调整包结构或将组件扫描范围扩大来解决问题[^5]。 ```java @SpringBootApplication(scanBasePackages = {"com.example", "other.package"}) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 2. **缺少视图解析器配置** 若使用的是基于 Thymeleaf 或 JSP 的视图渲染技术,而未正确配置视图解析器,可能会导致页面找不到的情况。确保已引入相应的依赖项,并在配置文件中启用支持[^3]。 对于 Thymeleaf: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` 配置示例: ```properties spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.suffix=.html ``` 3. **请求路径不匹配** 请求 URL 路径与控制器中的定义不符也会引发此问题。务必确认浏览器访问地址是否完全一致,包括大小写和斜杠位置等细节。 4. **RESTful API 返回 JSON 数据而非 HTML 页面** 使用了 `@RestController` 注解而不是普通的 `@Controller` 导致返回数据形式不符合预期。如果希望展示网页内容,请改回标准控制层声明方式[^2]。 修改前: ```java @RestController public class HelloController { @GetMapping("/hello") public String helloWorld(){ return "Hello World!"; } } ``` 修改后: ```java @Controller public class HelloController { @GetMapping("/hello") public String helloWorld(Model model){ model.addAttribute("message","Hello World!"); return "index"; } } ``` 5. **静态资源放置不当** 将前端所需的 CSS/JS 文件存放在默认公共资源目录之外的地方也可能引起加载失败现象。按照约定俗成的做法把它们放到 src/main/resources/static 下即可避免此类状况发生[^4]。 6. **跨域资源共享(CORS)** 当前后端分离部署时,由于浏览器的安全策略限制,默认情况下不允许不同源之间的 AJAX 请求通信。此时需开启 CORS 支持以允许特定域名下的客户端发起调用操作[^1]。 --- ### 总结 通过以上分析可知,“Whitelabel Error Page”主要是因为服务器未能成功处理指定 URI 所造成的响应异常情况。针对具体场景逐一排查上述提到的各种可能性之后应该能够有效定位根本原因进而彻底修复该缺陷。 ```java @Controller public class HomeController { @RequestMapping("/") public String home() { return "home"; // 映射至 templates/home.html } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值