从ServletRequest获取参数会抛出illegalStateException

问题描述 投票:1回答:1

我在每个请求调用的过滤器中都有这个代码。

httpRequest.getParameter(tabId);

我的请求在过滤后继续失败。在调试时我发现这个代码第一次抛出这个异常,现在说如果我使用“inspect”执行这个代码就抛出这个异常,如果我用“inspect”或“forward debug”再次执行它,它会给出“null”并完成流程。我不明白为什么它在第一次执行此代码时这样工作,因为请求中没有“tabId”。

18:44:03,443 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/workbench].[action]] (http-0.0.0.0:8090-5) JBWEB000236: Servlet.service() for servlet action threw exception: java.lang.IllegalStateException: JBWEB002004: More than the maximum number of request parameters (GET plus POST) for a single request (128) were detected. Any parameters beyond this limit have been ignored. To change this limit, set the maxParameterCount attribute on the Connector.
    at org.apache.tomcat.util.http.Parameters.addParameter(Parameters.java:184) [jbossweb-7.5.28.Final-redhat-1.jar:7.5.28.Final-redhat-1]
    at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:356) [jbossweb-7.5.28.Final-redhat-1.jar:7.5.28.Final-redhat-1]
    at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:213) [jbossweb-7.5.28.Final-redhat-1.jar:7.5.28.Final-redhat-1]
    at org.apache.catalina.connector.Request.parseParameters(Request.java:2885) [jbossweb-7.5.28.Final-redhat-1.jar:7.5.28.Final-redhat-1]
    at org.apache.catalina.connector.Request.getParameter(Request.java:1303) [jbossweb-7.5.28.Final-redhat-1.jar:7.5.28.Final-redhat-1]
    at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:350) [jbossweb-7.5.28.Final-redhat-1.jar:7.5.28.Final-redhat-1]
    **at com.xyz.IdentityFilter.doFilter(IdentityFilter.java:58) [projectX.jar:]**
servlets jboss httprequest httpresponse servlet-filters
1个回答
0
投票

请求正文已被使用,如果需要对其进行业务逻辑,则必须将其包装在过滤器中(在doFilter(...)调用之前)。有关示例,请参阅here

© www.soinside.com 2019 - 2024. All rights reserved.