有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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

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

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

异常堆栈跟踪-

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,但在最后一个i.e/xyz处保留斜杠;id/正在(服务器中)引发错误


共 (1) 个答案

  1. # 1 楼答案

    发现服务器tomcat v8版本存在问题。0.20

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