关于tomcat的request请求问题?报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

关于tomcat的request请求问题?报错

爱吃鱼的程序员 2020-06-08 15:24:20 31

因为近期换电脑,所以在搭环境的时候用了新下载的apache-tomcat-7.0.77和apache-tomcat-6.0.53,项目使用的是struts1,spring。在配好环境启动服务的时候一切都是正常的,前台到后台的响应也是正常,但是在请求action的url中加入中文,就会出现错误。

项目中提交用的是直接提交form表单的方式,method=post。action如下

dataForm.action=contextPath+"/addextaxstatemanage/stateChange.do?operate=deduction&tes=你好";

参数tes如果不办含中文的话正常响应,但是如果假如中文,则报错,而且都没有进入action方法。我debug过了,因为没有进入action,所以我也不知道是什么原因,tomcat7.0.77版本会报如下的错误,但是6.0.53则不会报错

2017-4-20 9:56:54 org.apache.coyote.http11.AbstractHttp11Processor process
信息: Error parsing HTTP request header
 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
    at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:189)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1028)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:662)

最后拷贝了原来电脑上的apache-tomcat-6.0.35,然后再启动,则一切正常。但是一直没有找到根本的原因,所以前来请大神赐教。

Java 应用服务中间件 Spring
分享到
取消 提交回答
全部回答(1)
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题