无法找到规范的上下文路径和用户代理提供的URI之间的匹配项

时间:2019-07-17 14:00:27

标签: java spring-boot tomcat

我正在部署在tomcat容器中的本地系统中运行spring boot应用程序。一切正常。但是,当将相同的代码部署到服务器时,它将显示URL的异常-

例如,如果项目上下文路径为xyz-

http://localhost:8080/xyz;id/没有给出任何错误,但是服务器中的相同错误(https://server/xyz;id/)则抛出500错误,如下所示-

我还尝试编写一个控制器来处理“ / error”路径,因为错误是通过ErrorPageFilter.java路由的。但这没用。

异常Stacktrace-

java.lang.IllegalStateException: Unable to find match between the canonical context path [/httpsportal] and the URI presented by the user agent [/httpsportal;id/]
org.apache.catalina.connector.Request.getContextPath(Request.java:1958)
org.apache.catalina.connector.RequestFacade.getContextPath(RequestFacade.java:783)
org.springframework.boot.web.support.ErrorPageFilter.forwardToErrorPage(ErrorPageFilter.java:183)
org.springframework.boot.web.support.ErrorPageFilter.handleException(ErrorPageFilter.java:166)
org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)
org.springframework.boot.web.support.ErrorPageFilter.access$000(ErrorPageFilter.java:59)
org.springframework.boot.web.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:90)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:108)

预期返回到“ / xyz”页面或重定向到“ / error”页面。但是什么都没发生。

请注意,/ xyz; id转换为/ xyz,但最后一个斜杠即/ xyz; id /抛出错误(在服务器中)。

1 个答案:

答案 0 :(得分:0)

服务器tomcat版本v8.0.20中发现的问题

一旦将tomcat版本升级到更高的版本,该问题就无法重现。