歲月如哥
          人生非夢(mèng)
          posts - 50,comments - 144,trackbacks - 0
          在用戶實(shí)際環(huán)境的tomcat日志(localhost_log.2009-06-22.txt)看到下面這個(gè)錯(cuò)
          引用:
          2009-06-22 12:39:41 StandardWrapperValve[ajax]: Servlet.service() for servlet ajax threw exception
          java.lang.IllegalStateException: Post too large
                  at org.apache.coyote.tomcat5.CoyoteRequest.parseRequestParameters(CoyoteRequest.java:2405)
                  at org.apache.coyote.tomcat5.CoyoteRequest.getParameter(CoyoteRequest.java:1073)
                  at org.apache.coyote.tomcat5.CoyoteRequestFacade.getParameter(CoyoteRequestFacade.java:265)
                  at org.ajaxanywhere.AAUtils.isAjaxRequest(AAUtils.java:34)
                  at org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:45)
                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
                  at com.thunisoft.summer.web.filter.CharsetFilter.doFilter(CharsetFilter.java:48)
                  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
                  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
                  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
                  at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
                  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                  at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
                  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
                  at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
                  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
                  at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
                  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
                  at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
                  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                  at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
                  at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
                  at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
                  at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
                  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
                  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
                  at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
                  at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
                  at java.lang.Thread.run(Thread.java:534)
          在另外一個(gè)catalina_log.2009-06-22.txt日志文件中,有下面這句話
          引用:
          2009-06-22 12:39:41 CoyoteRequest Parameters were not parsed because the size of the posted data was too big. Use the maxPostSize attribute of the connector to resolve this if the application should accept large POSTs.
          上網(wǎng)查了一下,說(shuō)是tomcat默認(rèn)接收的POST提交數(shù)據(jù)最大為2M,如果沒(méi)有修改過(guò)配置post提交的數(shù)據(jù)超過(guò)這個(gè)就報(bào)上面的錯(cuò)了。這個(gè)配置在%tomcat-5.0.28%conf\server.xml中的我們用到的connector節(jié)點(diǎn)的屬性。其中tomcat的文檔是這么描述的
          引用:
          maxPostSize
             The maximum size in bytes of the POST which will be handled by the container FORM URL parameter parsing. The feature can be disbled by setting this attribute to a value inferior or equal to 0. If not specified, this attribute is set to 2097152 (2 megabytes).
          準(zhǔn)備復(fù)現(xiàn)問(wèn)題,第一個(gè)想到的就是XX系統(tǒng)文書保存到數(shù)據(jù)庫(kù),并且為ajax的post方式提交(文件上傳不會(huì)報(bào)這個(gè)錯(cuò))
          代碼:
          var map = new Map();
                          map.put("key", "fy.doceditor.updateDoc");
                          map.put("jzjd", jzjd);
                          map.put("caseType", caseType);
                          map.put("caseId", caseId);
                          map.put("docId", docId);
                          map.put("wsxh", wsxh);
                          map.put("doc", docDetail);
                          var query = new QueryObj(map,updated);
                          query.send();
          所以創(chuàng)建了一個(gè)文書,粘貼了一個(gè)8M的word文書,點(diǎn)保存之后報(bào)js錯(cuò)。把上面這個(gè)docDetail保存成文件,發(fā)現(xiàn)大小為7.94 MB (8,332,134 字節(jié)),檢查日志有post too large錯(cuò)。
          按照文檔描述,修改xml文件配置如下:
          引用:
          <Connector port="8080"
                         maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                         enableLookups="false" redirectPort="8443" acceptCount="100"
                         debug="0" connectionTimeout="20000"
                         disableUploadTimeout="true" maxPostSize="0"/>
          問(wèn)題得到解決。

             一般來(lái)說(shuō)大部分post提交都是沒(méi)有問(wèn)題的,但是還是要仔細(xì)考慮一下項(xiàng)目是否會(huì)出現(xiàn)這種情況,最好是修改一下tomcat的配置。有時(shí)候需要注意這個(gè)異常只會(huì)記錄在tomcat的日志文件中。
          posted on 2009-06-22 17:36 歲月如歌 閱讀(1700) 評(píng)論(1)  編輯  收藏 所屬分類: java

          FeedBack:
          # re: tomcat5報(bào)Post too large的錯(cuò)
          2009-06-23 10:04 | 找個(gè)美女做老婆
          Java樂(lè)園技術(shù)交流,http://www.javaly.cn
          2群群號(hào):28840096  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 内江市| 涿鹿县| 瑞昌市| 申扎县| 张家川| 广河县| 玉溪市| 阿鲁科尔沁旗| 股票| 灵璧县| 渭南市| 威宁| 布尔津县| 荥阳市| 大竹县| 琼海市| 那曲县| 来宾市| 墨竹工卡县| 海淀区| 门源| 梅州市| 漯河市| 黄浦区| 灵石县| 隆子县| 澎湖县| 儋州市| 肇源县| 淳化县| 苏尼特左旗| 宽甸| 高青县| 高尔夫| 兴城市| 襄樊市| 阳西县| 赫章县| 吉木萨尔县| 大悟县| 南漳县|