zoukankan      html  css  js  c++  java
  • Websphere,request最大参数限制,MAX_PARAM_PER_REQUEST

    *

    WebSphere与Tomcat 提交大数据的form表单 遇到的问题

    1,遇到一次,struts2.1.8框架,websphere服务器,action传list集合到jsp页面显示,然后做了修改又从jsp页面传回给action,

    数据有1.1万多条,提交时总是出错,如下图:

    查找到RequestUtils.java所在的jar:/IBM/WebSphere/AppServer/plugins/com.ibm.ws.webcontainer.jar

    反编发现,有限制每次request的最大参数是1万,MAX_PARAM_PER_REQUEST=10000;

    确实如此,因为我提交了其他8个零散的参数,11600多条数据组成的list集合只传到了9992条,正好是1万条;

     解决办法一:

    避免页面传大数据量;

    解决办法二:

    如果非要传,可以为websphere定制属性:(以下来自网上,测试可行)

    1 在管理控制台中,单击服务器 > 服务器类型 > WebSphere 应用程序服务器 > server_name > Web 容器设置 > Web 容器。
    2.在“其他属性”下面,选择定制属性。
    3.在“定制属性”页面上,单击新建。
    4.在设置页面上的
    名称:com.ibm.ws.webcontainer.maxparamPerrequest(注意:这里都是小写,反编译jar可知)
    值:-1   (-1代表无限大)
    5.单击应用或确定。
    6.单击控制台任务栏上的保存以保存配置更改。
    7.重新启动服务器。

    **

    2,本地用Tomcat测试时,不报错,但是也是上传到后台9992条数据,后面的就取不到了,难道tomcat中也限制了?

    是的,借用下网上的话(http://benni82.iteye.com/blog/846887)

    tomcat知道自己处理不了了,什么也不干过去了

    jett知道自己处理不了了,抛个IllegalStateException出来通知一下;

    websphere知道自己处理不了,抛个IllegalArgumentException出来通知一下;

    所以,才会有Tomcat虽然没取到数据,但是也不报错,

    修改配置:(http://www.bubuko.com/infodetail-976418.html)

    修改tomcat  conf/server.xml文件,添加:

    <Connector executor="tomcatThreadPool"

    port="9080"

    protocol="HTTP/1.1"

    maxParameterCount="-1"

    connectionTimeout="20000"

    URIEncoding="UTF-8" />

    maxParameterCount="-1" 表示无限制

    至此,完整解决了Websphere和tomcat遇到的form表单提交大数据量的问题;

    *

    有问题在公众号【清汤袭人】找我,时常冒出各种傻问题,然一通百通,其乐无穷,一起探讨


  • 相关阅读:
    使用 Spring + CXF 发布 REST 服务
    在web项目中使用CXF暴露REST服务
    学习SpringMVC——从HelloWorld开始
    java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
    安装maven时JAVA_HOME的配置小问题
    java 接口的实现和继承关系
    servlet的两种配置方式
    C# MainWindowHandle为0的解决方法
    C# WindowsMediaPlayer 的一些用法
    C# 获取MP3信息
  • 原文地址:https://www.cnblogs.com/qingmaple/p/4988541.html
Copyright © 2011-2022 走看看