【问题标题】:Error in spring-boot appplication : This application has no explicit mapping for /error, so you are seeing this as a fallbackspring-boot 应用程序中的错误:此应用程序没有 /error 的显式映射,因此您将其视为后备
【发布时间】:2021-08-05 18:29:36
【问题描述】:

我在 Eclipse 中创建了一个简单的 Spring Boot 应用程序,它具有 User 类,并且我编写了 Web 服务来对 User 执行各种操作,例如 get-users、create-user、delete-user。

当我从浏览器测试应用程序时,我收到以下错误: 此应用程序没有显式映射 /error,因此您将其视为后备。

我使用的路径:http://localhost:8080/user/get-user/Mike 我已经注释了用户资源类@RestController 和应用程序类@SpringBootApplication。

代码 sn-p:

@RequestMapping(method = RequestMethod.GET, path = "/user/get-user/{name}" )
public User getUserByName(@PathVariable String name) {
    
    System.out.println("Request for name: "+name);
    return service.getUser(name); // this return the first user found with given name
}

这是我的项目结构: Project Structure

【问题讨论】:

    标签: java spring spring-boot microservices


    【解决方案1】:

    刚刚查看了您的项目结构。在您的情况下,您需要确保您的主类位于其他类之上的根包中。

    每当启动或运行 Spring Boot 应用程序(例如:Application.java 或带有 @SpringBootApplication 注释的类)时,它都会扫描主类包下的类。

    一个例子是:

    com
       +- test
             +- Application.java 
             |
             +- controller
             |   +- UserRestController.java
             +- domains
                 +- User.java
    

    试试这个并检查。 此外,请确保您已在所有必需的类上添加了所有必需的注释,以便 Spring 引导应用程序正常工作。

    【讨论】:

    • ,感谢您的反馈。我再次检查,可以看到所有注释都是正确的。项目的结构也和你建议的一样,不是吗? Application.java 是我的 SpringBootApplication 注释类,它在结构中是第一个。
    • @borkarda ,请再次检查。您的 Application.java 不在 src/main/java 中的其他包之上。它实际上与控制器类和其他类并行。一旦你正确重组它,它应该可以工作。
    • 再次感谢。它现在起作用了。我也试过,下面的代码,这也是这样做的方式之一。我将 Application 类更改为 @SpringBootApplication(scanBasePackages = "com.md5.rest.webservices.*")
    猜你喜欢
    • 1970-01-01
    • 2021-07-06
    • 2020-05-11
    • 1970-01-01
    • 2019-01-26
    • 2020-09-17
    • 2020-10-26
    • 2016-12-15
    • 2015-09-17
    相关资源
    最近更新 更多