【问题标题】:How can I resolve this issue, I am unable to access my controller class methods from Postman or Browser?如何解决这个问题,我无法从 Postman 或浏览器访问我的控制器类方法?
【发布时间】:2020-11-15 15:55:16
【问题描述】:

我正在运行一个简单的 Spring Boot 应用程序,在控制台中它运行成功。但是当我通过邮递员尝试时,它会给出此错误消息。

{
"timestamp": "2020-07-26T04:22:15.626+00:00",
"status": 404,
"error": "Not Found",
"message": "",
"path": "/loginRegistration/user/"

}

我的项目结构是...

我的主要课程是


import org.example.controller.User;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
        System.out.println("Welcome");
    }
}

我的控制器是....


import com.fasterxml.jackson.core.JsonProcessingException;
import org.example.entity.Registration;
import org.example.model.UserDto;
import org.example.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
@RequestMapping("/user")
public class User {
    @Autowired
    UserService userService;

    @RequestMapping(value = "/registration", method = RequestMethod.POST)
    public String registerUser(@Validated UserDto userdto) throws JsonProcessingException {
        userService.registerUser(userdto);
        return "success";
    }

    @RequestMapping(value = "/getUserList", method = RequestMethod.GET)
    public List<Registration> getUserList() {
        List<Registration> list = userService.getUserList();
        return list;

    }

    @RequestMapping(value = "/")
    public String test() {
        return "testing";
    }
}

请指导我需要做哪些更改才能在邮递员上运行。

【问题讨论】:

    标签: java spring spring-boot annotations postman


    【解决方案1】:

    @Jimmy 描述的另一种替代方法是在您的 User 类中将 @RequestMapping 定义为 -

    @RestController
    @RequestMapping("/loginRegistration/user/")
    public class User {
    

    【讨论】:

      【解决方案2】:

      spring 应用程序名称不用作上下文路径。你不得不 在您的 application.properties 文件中定义以下属性以使用 'loginRegistration' 作为你的上下文路径。

      server.servlet.context-path=/loginRegistration
      

      现在您可以将其用作 /loginRegistration/user/

      如果有帮助,请告诉我。谢谢

      【讨论】:

      • "loginRegistration" 是我的应用程序名称。我写在 application.properties 文件中。比如 spring.application.name=loginRegistration
      • /user 它是控制器级映射。尝试为具体方法添加映射,即/loginRegistration/user/registration
      • @VikramShekhawat:如果有机会,请接受答案,以便对其他人有用。谢谢
      【解决方案3】:

      您必须确保提供战争名称以及给定的 URL...并且查看包应该在您的主类下...如果不是,您必须使用 componentscan 添加到主类中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-06
        • 1970-01-01
        • 2016-12-21
        • 2017-12-20
        • 2022-12-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多