在将我的 webapp 从 2.5.8 更新到 Spring Boot 2.6.0 后,我在 WebSphere 服务器(9.0.5.8)上遇到了问题。所有带有注释的端点都org.springframework.web.bind.annotation.RestController
返回 404 错误。应用程序在 Tomcat 上工作正常。
问题解决了。 我添加了`spring.mvc.pathmatch.matching-strategy=ant-path-matcher"。原因是:spring-boot release notes-"PathPattern Based Path Matching Strategy for Spring MVC
将请求路径与注册的 Spring MVC 处理程序映射匹配的默认策略已从 AntPathMatcher 更改为 PathPatternParser。
如果你使用 Spring Security,你应该检查你对 mvcMatchers 的使用,以确保你的匹配器继续满足你的需求。使用 AntPathMatcher,authorizeRequests.mvcMatchers("hello").permitAll() 将授予对 /hello 的访问权限。PathPatternParser 更精确的匹配需要使用 authorizeRequests.mvcMatchers("/hello").permitAll() (注意前导 /)。
如果需要将默认切换回 AntPathMatcher,可以将 spring.mvc.pathmatch.matching-strategy 设置为 ant-path-matcher。”
我仍然不知道为什么它只发生在 Websphere 中。