TheMasss 2024-05-14 21:25 采纳率: 0%
浏览 3

Whitelabel Error Page

**运行Spingboot项目,报错Whitelabel Error Page

img


查阅网上信息有以下解决方案
1、原因:启动类位置不对,无法扫描到其他包
解决方法:将启动类移动到所有代码的外面
2.原因:访问路径不匹配
3.前两条均未解决问题
原因:启动类未扫描到controller包
解决方案:在启动类添加注释
@ComponentScan(basePackages = {"com.wms.controller"})

img

问题得到解决

注解@ComponentScan的作用
  @Component注解及其衍生注解@RestController、@Controller、@Service和@Repository都是组件注册注解。@ComponentScan注解主要是从约定的扫描路径中,识别标注了组件注册注解的类,并且把这些类自动注册到spring IoC容器中,这些类就是我们通常所言的bean。IoC容器是Spring的特色之一,可以使用它管理bean。当然,@Configration注解修饰的类也会被托管给IoC容器。

组件扫描路径
  注解@ComponentScan 如果不设置value属性,默认扫描路径是启动类 XxxApplication.java 所在目录及其子目录,所以最好还是配置value属性,减少加载时间,提高系统启动速度。
  比如启动类在包 com.eg.wiener 下面,那么项目启动时,会默认扫描wiener包及其子包下的所有类。也就是说,即便不明确标注@ComponentScan,Spring Boot也会自动搜索当前应用主入口目录及其下方子目录。如果其它包中的bean 不在当前主包路径下面,则应使用@ComponentScan设置value属性,配置扫描路径。如果定义了错误的扫描路径,那么在使用注解@Autowired自动装配Bean时会出错,报a bean of type that could not be found错误。

配置扫描路径
  @ComponentScan注解既可以扫描包,也可以扫描指定的类。我们只需要指定一个需要扫描的路径,就可以达到更改扫描路径的目的。

包路径
  通过value属性设置需要扫描的包:

@ComponentScan({"com.company.user","com.company.service"})

类路径
  通过basePackageClasses属性指定需要扫描的类:

@ComponentScan(basePackageClasses={XxxService.class, YyyService.class})

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-05-14 21:25
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    【您想要解决的问题】:您提问的目的是解决在运行Spring Boot项目时遇到的“Whitelabel Error Page”错误,这是一个常见的错误页面,表明服务器无法找到请求的资源。

    【图片内容】:

    1. 第一张图片显示了一个错误信息,指出应用程序没有为/error路径设置明确的映射,因此显示了一个后备的错误页面。错误类型为“Not Found”,状态码为404。
    2. 第二张图片包含了一段Spring Boot项目的启动类代码,其中包含了一些Spring的注解,如@SpringBootApplication@ComponentScan,但代码中有一些拼写错误,例如@SpringBootApplication被错误地写成了@\ngcomponentscan

    【问题出现原因】:根据您提供的信息和图片内容,问题可能出现的原因包括:

    • 启动类的位置不正确,导致Spring Boot无法扫描到其他包。
    • 访问路径不匹配,可能是由于请求的URL与实际的路由配置不一致。
    • 启动类没有扫描到controller包,导致Spring Boot无法找到相关的控制器。

    【问题解决方案】:为了解决这个问题,您需要确保:

    1. 启动类位于正确的位置,能够扫描到所有需要的包。
    2. 访问路径与您的Spring Boot应用中的路由配置相匹配。
    3. 在启动类中添加正确的@ComponentScan注解,确保Spring Boot能够扫描到controller包。

    【提供代码】:您需要修正启动类代码中的拼写错误,并确保@ComponentScan注解正确配置。以下是修正后的代码示例:

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.ComponentScan;
    
    @SpringBootApplication
    @ComponentScan(basePackages = {"com.wms.service", "com.wms.controller"})
    public class WmsApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(WmsApplication.class, args);
        }
    }
    

    【代码运行方式】:您需要在支持Java和Spring Boot的环境中运行这段代码。通常,这涉及到以下步骤:

    • 将代码保存为一个.java文件。
    • 使用Maven或Gradle构建项目。
    • 运行Spring Boot应用。

    【代码预期运行结果】:如果配置正确,您的Spring Boot应用应该能够正常启动,并且不会出现“Whitelabel Error Page”错误。

    【推荐相关链接】:

    请注意,您需要根据实际项目的结构调整basePackages中的包路径。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月14日

悬赏问题

  • ¥15 openpcdet自制数据集评估bev精度和3d精度相同
  • ¥15 excel 上下按钮 显示行
  • ¥20 云卓h12pro 数传问题
  • ¥20 请问有人知道怎么用工艺库里面的sdb文件通过virtuoso导出来library里面每个cell的symbol吗?
  • ¥20 海思 nnie 编译 报错
  • ¥50 决策面并仿真,要求有仿真结果图
  • ¥15 关于路由器的路由协议配置
  • ¥15 springboot接入微信支付SDK
  • ¥50 大区域的遥感影像匹配 怎么做啊
  • ¥15 求解答:pytorch跑yolov8神经网络受挫