`
hbhgjiangkun
  • 浏览: 105949 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

org.apache.tomcat.util.http.Parameters processParameters WARNING: Parameters: Invalid chunk ignored

 
阅读更多
不同版本的原因,都那过来研究一下:

造成以上问题的有这么几种原因:
1、访问/test.jsp?&p1=1&p2=2...
2、访问/test.jsp?p1=1&p2=&p3=3...
3、访问/test.jsp?p1=1&&p2=2...
4、访问/test.jsp?action=save&....
5、表单提交时,存在<input name="" value="***" />这样的域

总之,代码编写的不规范容易带来这样的问题。

原因分析之一:你提交后面(*.jsp?param1=1&param2=2&&param3=3)的参数跟随过多的&&符号,
超过两个以上,tomcat5.5及版本以上它可能会不识别你给的参数,认为是你的参数非法无效的有大块的,并且可以忽略掉多余的,只是作为警告警示你有非法字符参数传递,一般来说不会影响你的应用程序程序运行,但是我们建议尽量避免这种多余参数的出现。这就是Apache组织在版本升级时,增加应用功能的校验,一些的非法的参数输入格式会提示警告你,有些原因可能被认为是你传入的参数,在对应的页面没有request.getParameter("param")使用到这个参数,既然你传入了,但你又没使用,所以警告提示你需要去掉多余的参数传递;

原因分析之二:jdk版本不同跟应用服务器配置的相应变化,一起做了参数功能校验设置。

也就是说参数的传递尽量的规范化,不能随意撰写,可能会出现你想不到的异常或者警告等。

举个例子:url?&key=value
这里的&就代表一个无效的参数。正确的应该是url?key1=value1&key2=value2
或者url?key=value 。

这个警告应该不会引起线程挂掉的,很可能是tomcat或你的应用本身有性能瓶颈。服务器会过滤这种无效参数,要找这个警告的源头是不容易,但也不是没办法。你需要写一个url有效性的检查的方法,然后写一个过滤器,把这个过滤器配置为对有所url进行过滤,然后发现有问题的url就打印或写入日志。

Jun25,200710:34:54PMorg.apache.tomcat.util.http.ParametersprocessParameters
2WARNING:Parameters:Invalidchunkignored.

相信很多人,在使用Tomcat中碰到过上面这个问题。我也为此苦恼过。现将解决办法,告诉大家及解决问题的一点感悟。
数次碰到这个问题没有解决后,促使我想到去看原代码,根据异常信息,我找到抛出异常的代码段。现将原代码引入到文章中。
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->1if(nameEnd<=nameStart){
2StringBuildermsg=newStringBuilder("Parameters:Invalidchunk");
3//Nonameeg&=xx&willtriggerthis
4if(valEnd>=nameStart){
5msg.append('/'');
6try{
7msg.append(newString(bytes,nameStart,
8valEnd-nameStart,DEFAULT_ENCODING));
9}catch(UnsupportedEncodingExceptione){
10//Shouldneverhappen
11log.error("Unabletoconvertbytes",e);
12}
13msg.append("'");
14}
15msg.append("ignored.");
16log.warn(msg);
17continue;
18//invalidchunk-it'sbettertoignore
19}
不知你注意到没,我在上面代码第3行的注释上,加上了下划线,相信你看到这句话时,知道应该做了。
对了,你猜对了。没有参数名称(例如,&=xx&aa=11),每个&后面没有参数名称,这样的情况发生后,将
触发这个异常。

注:这同样告诉我们一个问题。对于开源项目,如果你在搜索现有资料不能解决问题时,你可以尝试去看原代码,或许可以找到解决问题的办法。
http://blog.csdn.net/lxy15329/article/details/5958837

造成以上问题的有这么几种原因:
1、访问/test.jsp?&p1=1&p2=2...
2、访问/test.jsp?p1=1&p2=&p3=3...
3、访问/test.jsp?p1=1&&p2=2...
4、访问/test.jsp?action=save&....
5、表单提交时,存在<input name="" value="***" />这样的域

总之,代码编写的不规范容易带来这样的问题。

原因分析之一:你提交后面(*.jsp?param1=1&param2=2&&param3=3)的参数跟随过多的&&符号,
超过两个以上,tomcat5.5及版本以上它可能会不识别你给的参数,认为是你的参数非法无效的有大块的,并且可以忽略掉多余的,只是作为警告警示你有非法字符参数传递,一般来说不会影响你的应用程序程序运行,但是我们建议尽量避免这种多余参数的出现。这就是Apache组织在版本升级时,增加应用功能的校验,一些的非法的参数输入格式会提示警告你,有些原因可能被认为是你传入的参数,在对应的页面没有request.getParameter("param")使用到这个参数,既然你传入了,但你又没使用,所以警告提示你需要去掉多余的参数传递;

原因分析之二:jdk版本不同跟应用服务器配置的相应变化,一起做了参数功能校验设置。

也就是说参数的传递尽量的规范化,不能随意撰写,可能会出现你想不到的异常或者警告等。

举个例子:url?&key=value
这里的&就代表一个无效的参数。正确的应该是url?key1=value1&key2=value2
或者url?key=value 。

这个警告应该不会引起线程挂掉的,很可能是tomcat或你的应用本身有性能瓶颈。服务器会过滤这种无效参数,要找这个警告的源头是不容易,但也不是没办法。你需要写一个url有效性的检查的方法,然后写一个过滤器,把这个过滤器配置为对有所url进行过滤,然后发现有问题的url就打印或写入日志。

Jun25,200710:34:54PMorg.apache.tomcat.util.http.ParametersprocessParameters
2WARNING:Parameters:Invalidchunkignored.

相信很多人,在使用Tomcat中碰到过上面这个问题。我也为此苦恼过。现将解决办法,告诉大家及解决问题的一点感悟。
数次碰到这个问题没有解决后,促使我想到去看原代码,根据异常信息,我找到抛出异常的代码段。现将原代码引入到文章中。
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->1if(nameEnd<=nameStart){
2StringBuildermsg=newStringBuilder("Parameters:Invalidchunk");
3//Nonameeg&=xx&willtriggerthis
4if(valEnd>=nameStart){
5msg.append('/'');
6try{
7msg.append(newString(bytes,nameStart,
8valEnd-nameStart,DEFAULT_ENCODING));
9}catch(UnsupportedEncodingExceptione){
10//Shouldneverhappen
11log.error("Unabletoconvertbytes",e);
12}
13msg.append("'");
14}
15msg.append("ignored.");
16log.warn(msg);
17continue;
18//invalidchunk-it'sbettertoignore
19}
不知你注意到没,我在上面代码第3行的注释上,加上了下划线,相信你看到这句话时,知道应该做了。
对了,你猜对了。没有参数名称(例如,&=xx&aa=11),每个&后面没有参数名称,这样的情况发生后,将
触发这个异常。

注:这同样告诉我们一个问题。对于开源项目,如果你在搜索现有资料不能解决问题时,你可以尝试去看原代码,或许可以找到解决问题的办法。
分享到:
评论

相关推荐

    org.apache.poi jar包

    org.apache.poi JAR包,解决个人的 import org.apache.commons.beanutils.PropertyUtilsBean;...import org.apache.poi.ss.util.CellRangeAddress; "The import org.apache.poi cannot be resolved"的问题

    org.apache.http jar包

    下载HttpClient,解压,在Eclipse中导入所有JAR import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache....import org.apache.http.util.EntityUtils;

    可用org.apache.commons.httpclient-3.1.0.jar.zip

    包含 import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpException; import org.apache.commons....import org.apache.commons.httpclient.util.HttpURLConnection;

    org.apache.http包

    import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.HttpVersion; import org.apache.http.client.HttpClient;...import org.apache.http.util.EntityUtils;

    org.apache.poi JAR包

    import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.hssf.util.Region; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.ss.util.CellRangeAddress; "The import ...

    org.jbundle.util.osgi.wrapped.org.apache.http.client-4.1.2.jar

    org.jbundle.util.osgi.wrapped.org.apache.http.client-4.1.2.jar

    axis2.jar 解决 org.apache.axis2.util.JavaUtils.callStackToString问题

    &lt;Call Stack = DEBUG_FRAME = org.apache.axis2.util.JavaUtils.callStackToString(JavaUtils.java:564) DEBUG_FRAME = org.apache.axis2.description.ParameterIncludeImpl.debugParameterAdd(ParameterIncludeImpl...

    org.apache.commons.net.util.jar

    org.apache.commons.net.util.jar

    org.apache.commons.jar包官方免费版(附下载地址)

    解决Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils 类似错误,需要导入jar包,下载地址是http://commons.apache.org/proper/commons-io/download_io.cgi

    org.apache.http.legacy.jar的jar包

    6. `org.apache.http.util.EntityUtils`: 提供了处理HTTP实体的实用方法,如解析响应体为字符串或字节数组。 四、使用示例 创建一个简单的HTTP GET请求: ```java CloseableHttpClient httpClient = HttpClients....

    apache-tomcat-util.jar

    jar包,亲测可用

    axis2解决 org.apache.axis2.util.JavaUtils.callStackToString问题

    在开发基于Axis2的Web服务时,可能会遇到各种错误和异常,其中之一就是与`org.apache.axis2.util.JavaUtils.callStackToString`相关的问题。这个问题通常出现在Axis2尝试获取并打印堆栈跟踪信息时。 `...

    org.apache.xmlbeans jar包

    Apache XMLBeans是Apache软件基金会开发的一个Java库,主要用于XML数据绑定和XML文档处理。这个库的核心功能是将XML Schema(XSD)转换为Java类,允许开发者通过对象模型与XML数据进行交互,从而简化XML在Java应用...

    org.apache.jasper.JasperException: java.util.MissingResourceException 解决方案

    在Java Web开发中,我们经常会遇到“org.apache.jasper.JasperException: java.util.MissingResourceException”这样的错误。这个异常通常发生在尝试访问一个不存在的资源文件时,比如国际化(i18n)配置文件。本文...

    org.apache.axis2.jar

    org.apache.axis2.jar

    org.apache.http 依赖包

    这个库的核心部分就是`org.apache.http`包,它包含了处理HTTP请求和响应的各种类和接口。当我们遇到"找不到org.apache.http.?的库"的错误时,通常意味着开发环境中缺少了这个依赖。 Apache HTTP Components Client ...

    resolver_java_wsdl.jar

    at com.sun.xml.ws.util.xml.XmlUtil.createEntityResolver(XmlUtil.java:266) at org.jvnet.jax_ws_commons.spring.SpringService.getObject(SpringService.java:327) at org.jvnet.jax_ws_commons.spring....

    apache-tomcat-8.5.78 源码 maven 版本

    apache-tomcat-8.5.78 源码 maven 版本,配置都已经搞定,开箱即用。是学习tomcat的不二之选。启动类 org.apache.catalina.startup.Bootstrap

    org.apache.HTTP需要的jar包

    标题中的"org.apache.HTTP需要的jar包"指的是Apache HTTP组件的核心部分,用于构建HTTP客户端应用。描述中提到了两个关键的压缩包:`httpcomponents-client-4.5.5-bin.zip`和`httpcomponents-core-4.4.9-bin.zip`,...

    org.apache.commons.commons-math3:3.6.1

    Apache Commons Math 3.6.1 是一个由Apache软件基金会开发的开源库,它提供了广泛的数学和统计功能,适用于各种编程任务。这个版本是3.6.1,意味着它是对之前版本的改进和增强,可能包括错误修复、性能优化以及新...

Global site tag (gtag.js) - Google Analytics