• 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

  • 相关阅读:
    [网络] 第五章 运输层
    pubwin
    R语言
    我的微博开通啦
    迅雷使用积分制的真正作用和目的 [揭密迅雷]
    求数组里面第二大的数
    xp环境下安装vmware workstation 7出错
    一道大学c语言作业题
    写在断网的那些日子里
    mysql里奇怪的日期201627 14:28:15
  • 原文地址:https://www.cnblogs.com/no8g/p/13415608.html
Copyright © 2020-2023  润新知