设为首页 收藏本站
查看: 596|回复: 0

[经验分享] org.apache.tomcat.util.http.Parameters processParameters WARNING: Parameters: I

[复制链接]

尚未签到

发表于 2017-1-14 09:16:53 | 显示全部楼层 |阅读模式
不同版本的原因,都那过来研究一下:
  造成以上问题的有这么几种原因:
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 DSC0000.gif &=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),每个&后面没有参数名称,这样的情况发生后,将
触发这个异常。


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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-328167-1-1.html 上篇帖子: 基于Apache Mina实现的TCP长连接和短连接实例 下篇帖子: bboss 持久层配置apache dbcp,proxool,c3p0,Druid等数据源方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表