Java @请求映射不';t工作-未找到处理程序方法
我在让@RequestMapping工作时遇到问题,我得到以下日志;你能帮我理解一下日志吗 启动时记录: 调试o.s.web.servlet.DispatcherServlet-名为“DispatcherServlet”的DispatcherServlet正在处理[/ruler/webjars/test]的GET请求 调试o.s.w.s.m.m.a.RequestMappingHandlerMapping-查找path/webjars/test的处理程序方法 调试o.s.w.s.m.m.a.RequestMappingHandlerMapping-未找到[/webjars/test]的处理程序方法 DEBUG o.s.w.s.h.SimpleUrlHandlerMapping-请求[/webjars/test]的匹配模式是[/webjars/,/] DEBUG o.s.w.s.h.simplerlhandermapping-request[/webjars/test]的URI模板变量为{} 调试o.s.w.s.h.SimpleUrlHandlerMapping-使用处理程序[ResourceHttpRequestHandler[locations=[class path resource[META-INF/resources/webjars/]将[/webjars/test]映射到HandlerExecutionChain,解析器=[org.springframework.web.servlet.resource]。PathResourceResolver@52454457]]]和1个拦截器 DEBUG o.s.web.servlet.DispatcherServlet-[/ruler/webjars/test]的上次修改值为:-1 DEBUG o.s.web.servlet.DispatcherServlet-返回给名为“DispatcherServlet”的DispatcherServlet的Null ModelAndView:假设HandlerAdapter已完成请求处理 调试o.s.web.servlet.DispatcherServlet-已成功完成请求 访问localhost:80/ruler/test时记录日志: 调试o.s.web.servlet.DispatcherServlet-名称为的DispatcherServlet “dispatcherServlet”正在处理[/ruler/test]的GET请求 调试o.s.w.s.m.m.a.RequestMappingHandlerMapping-查找处理程序 路径/测试方法 调试o.s.w.s.m.m.a.RequestMappingHandlerMapping-未找到 [/test]的处理程序方法 调试o.s.w.s.h.SimpleUrlHandlerMapping-用于 请求[/test]为[/**] 调试o.s.w.s.h.SimpleUrlHandlerMapping-的URI模板变量 请求[/test]是{} 调试o.s.w.s.h.SimpleUrlHandlerMapping-映射[/test]到 HandlerExecutionChain与handler[ResourceHttpRequestHandler [位置=[类路径资源[META-INF/resources/],类路径 资源[resources/],类路径资源[static/],类路径 资源[public/],ServletContext资源[/], 解析器=[org.springframework.web.servlet.resource。PathResourceResolver@4538856f]]] 和1个拦截器 DEBUG o.s.web.servlet.DispatcherServlet-的上次修改值 [ruler/test]是:-1 DEBUG o.s.web.servlet.DispatchersServlet-返回Null ModelAndView 到名为“DispatcherServlet”的DispatcherServlet:假设 HandlerAdapter已完成请求处理 调试o.s.web.servlet.DispatcherServlet-已成功完成 请求 Application.properties:Java @请求映射不';t工作-未找到处理程序方法,java,rest,spring-mvc,spring-boot,servlets,Java,Rest,Spring Mvc,Spring Boot,Servlets,我在让@RequestMapping工作时遇到问题,我得到以下日志;你能帮我理解一下日志吗 启动时记录: 调试o.s.web.servlet.DispatcherServlet-名为“DispatcherServlet”的DispatcherServlet正在处理[/ruler/webjars/test]的GET请求 调试o.s.w.s.m.m.a.RequestMappingHandlerMapping-查找path/webjars/test的处理程序方法 调试o.s.w.s.m.m.a.Re
server.servlet.context-path=/ruler
server.port=80
RestController:
@RestController
public class myController {
private final MedicalService medicalService;
@Autowired
public myController(MedicalService medicalService) {
this.medicalService = medicalService;
}
@RequestMapping(value="/test")
public String testRest()
{
return "Yay";
}
}
没有web.xml。您还可以使用@GetMapping和ResponseEntity来获取更具体的信息
@GetMapping(value = "/test")
public ResponseEntity<String> testRest(){
return ResponseEntity.ok("Yay");
}
@GetMapping(value=“/test”)
公共响应性测试{
返回响应。好(“耶”);
}
找到了我问题的答案,是因为项目结构,而不是配置
应用程序包应该类似于com.App
,那么控制器应该是com.App.controller
@RequestMapping(value="/test")
到
1.显示完整的控制器类或至少类声明和注释2。您如何调用此端点以及url使用的是什么?请尝试将
@ResponseBody
注释添加到您的testRest
method@S.Tushinov根据文件,这是不利的;使用@RestController
相当于使用@Controller
和@ResponseBody
您不应该访问url和端口号吗?类似于localhost:8080/ruler/test的东西,我在问题本身中添加了日志;它只是说它找不到任何映射!我认为这可以解决问题,因为他的请求是一个GET请求,处理程序无法找到它的映射,但是正如Ace在自己的回答中所讨论的,问题来自不同的原因。请指定这应该解决问题的原因。
@RequestMapping(value="/test", method = RequestMethod.GET)