gpt4 book ai didi

java - RequestMappingHandlerMapping 是 RestController 的截断路径

转载 作者:行者123 更新时间:2023-11-28 22:18:29 24 4
gpt4 key购买 nike

我似乎对如何将 RestController 添加到我的应用程序感到困惑。我很接近这里,但是当点击 url http://localhost:8080/rest/username/test 时,我在日志中得到以下信息。

2015-10-27 20:12:23,427 26366 [http-nio-8080-exec-5] DEBUG o.s.security.web.FilterChainProxy -/rest/username/test 到达附加过滤器链的末端;继续原链
2015-10-27 20:12:23,427 26366 [http-nio-8080-exec-5] 调试 o.s.web.servlet.DispatcherServlet - 名称为“Rest”的 DispatcherServlet 正在处理 [/rest/username/test] 的 GET 请求
2015-10-27 20:12:23,427 26366 [http-nio-8080-exec-5] 调试 o.s.w.s.m.m.a.RequestMappingHandlerMapping - 查找路径/username/test 的处理程序方法
2015-10-27 20:12:23,428 26367 [http-nio-8080-exec-5] 调试 o.s.w.s.m.m.a.RequestMappingHandlerMapping - 未找到 [/username/test] 的处理程序方法
2015-10-27 20:12:23,428 26367 [http-nio-8080-exec-5] 调试 o.s.w.s.h.SimpleUrlHandlerMapping - 请求 [/username/test] 的匹配模式是 [/**]

我发现许多 stackoverflow 页面与由于“点”(.) 而被截断的路径变量相关,但我的路径没有“点”,现在只返回一个字符串。

在我看来,RequestMappingHandlerMapping 对象在尝试找到与适当方法的匹配项时正在截断路径。我只是不确定为什么,以及如何让它正常工作。

休息 Controller

@RestController 
@RequestMapping(value = "/rest/{username}")
public class RestController {

@RequestMapping(value = "/test", method = RequestMethod.GET)
public String test() {
return "Rest controller data.";
}

}

web.xml

<servlet-mapping>
<servlet-name>Rest</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>

rest-servlet.xml

<!-- mvc config -->
<mvc:annotation-driven/>

<!-- scan for controller -->
<context:component-scan base-package="abnd.pue.rest"/>

最佳答案

感谢您的帮助。问题是上下文路径是一个部署属性,不应将其添加到 Controller 的映射中。

修复

休息 Controller

@RestController 
@RequestMapping(value = "/{username}")
public class RestController {

@RequestMapping(value = "/test", method = RequestMethod.GET)
public String test() {
return "Rest controller data.";
}

}

关于java - RequestMappingHandlerMapping 是 RestController 的截断路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33381372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com