SpringBoot常见错误页面,Whitelabel Error Page解决办法(type=Not Found, status=404)

背景:使用springboot+vue构建的微信点餐系统

最近在做一个项目, 配置完信息以后,一直报错, 访问URL报错信息如下:

项目的配置信息,pom文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.5.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.imooc</groupId>
	<artifactId>sell</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>sell</name>
	<description>Demo project for Spring Boot</description>
	<packaging>war</packaging>
	<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

        <dependency>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <version>2.5.2</version>
        </dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

        <dependency>
            <groupId>repository_ali.mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.40</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>repository_ali.org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.16</version>
        </dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

注意此项目引入的Spring Boot 版本是2.1.5的,然后项目的配置文件信息如下:

我项目的application.yml配置信息如下:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    username: root
    password: 123456
    url: jdbc:mysql://192.168.31.204/sell?characterEncoding=utf-8&useSSL=false
  jpa:
    show-sql: true
server:
  context-path: /sell

上网查了很多,原因是SpringBoot启动类(main方法所在的类)未放在根目录下,导致@SpringBootApplication扫描不全所有包。

解决方案:也是官网上建议的:将SpringBoot启动类(main方法所在的类)即Application.java放置在和Controller同级目录,如下图所示。

一、controller类必须是Application的所在包的类或者子包的类。
          官网那边说明是,程序只加载Application.java所在包及其子包下的内容。

   

二、静态资源的配置
  springboot 在未配置访问静态资源的情况下,会默认到 templates 文件夹下找index页面。。我现在还没有配置,后续会继续编写。

而我所遇到的还不是因为这个原因,因为我的包目录结构是正确的。我的项目出现WhitePage的原因竟然是spring-boot配置文件(application.yml)中server.context-path不起作用。不起作用的原因也已经查明:server.context-path的配置方式是SpringBoot 1.x.x版本中出现的,而我引用是2.x.x版本的,需要更改为server: servlet: context-path: /sell,/sell是访问的URL中用到的,以后再详细说明。

可以查看server.context-path不起作用的详细说明请点击此链接https://blog.csdn.net/weixin_44299027/article/details/93380924

原文地址:https://www.cnblogs.com/no8g/p/13415608.html