请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Tomcat报错Error parsing HTTP request header

Tomcat报错Error parsing HTTP request header

Controller:

@RequestMapping("add_category.do")

    @ResponseBody

    public ServerResponse addCategory(HttpSession session, String categoryName, @RequestParam(value="parentId", defaultValue = "0") int parentId) {

        User user = (User)session.getAttribute(Const.CURRENT_USER);

        if(null == user) {

            return ServerResponse.createByErrorCodeMessage(ResponseCode.NEED_LOGIN.getCode(), "用户未登录,请登录");

        }

        if(iUserService.checkAdminRole(user).isSuccess()) {

            // 实现添加类别的逻辑

            return iCategoryService.addCategory(categoryName, parentId);

        } else {

            return ServerResponse.createByErrorMessage("不是管理员,无权操作分类");

        }

    }


ServiceImp:

public ServerResponse addCategory(String categoryName, Integer parentId) {

        if(null == parentId || StringUtils.isBlank(categoryName)) {

            return ServerResponse.createByErrorMessage("添加分类错误");

        }


        Category category = new Category();

        category.setName(categoryName);

        category.setParentId(parentId);

        category.setStatus(true);


        int rowCount = categoryMapper.insert(category);

        if(0 < rowCount) {

            return ServerResponse.createBySuccess("添加分类成功");

        }

        return ServerResponse.createByErrorMessage("添加分类失败");

    }


CategoryMapper.xml:

<insert id="insert" parameterType="com.mmall.pojo.Category" >

    insert into mmall_category (id, parent_id, name, 

      status, sort_order, create_time, 

      update_time)

    values (#{id,jdbcType=INTEGER}, #{parentId,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, 

      #{status,jdbcType=BIT}, #{sortOrder,jdbcType=INTEGER}, now(),

      now())

  </insert>


IDEA控制台报错:

30-Jan-2018 17:30:42.914 信息 [http-nio-8088-exec-8] org.apache.coyote.http11.Http11Processor.service 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.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:471)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:667)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:798)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1434)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Thread.java:745)

正在回答

3回答

Geely 2018-02-04 11:04:22

你好,同学,赞一个问题描述的很清楚,最近单位事情比较多,回复晚了。

之前看是编码的一些问题,可参考 http://blog.csdn.net/snailmann/article/details/72858805

乱码我们课程里有讲,可以通过配置来解决。

然后你的问题是form这种方式,如果我们非form的提交,用默认的application/text的方式也是可以的

form提交一般用于post等提交,我们的get提交拼接到参数里即可。

而且你对比的非常好,我猜测可能是不同的浏览器请求工具还是有一些不一样的。

总之我们别卡住,继续前行~~有问题随时沟通,最后必须赞一下这个同学提问问题的质量!还有自己的思路!赞美!

【新加入的同学,以为内容请务必仔细阅读,给同学们整理的学习课程的集锦宝典,帮助大家更高效的完成一期课程】  
部署环境的话 ,建议看下文章最后一小段哟~首先跟着课程阿里云部署那个章节过一遍,可以先不跟着操作,做到心里有数,环境部署都做了什么。
http://coding.imooc.com/lesson/96.html#mid=3861   
课程项目思维导图及线上环境、测试环境、部署linux和windows等解答
http://www.imooc.com/article/20193  
尽快进入咱们QQ群哟~~进群方法下面思维导图那个帖子有。非常详细 
课程项目思维导图及线上环境、测试环境、部署linux和windows等解答
http://www.imooc.com/article/20193  
【重点】问答区常见问题整理
http://www.imooc.com/article/18998 
课程项目QQ群分享手记
http://www.imooc.com/article/19094 
找工作的季节之简历及找工作的分享
http://www.imooc.com/article/19998 
项目环境、vsftpd、linux、mysql等各种配置、软件下载
http://learning.happymmall.com 
mybatis-plugin插件安装
http://coding.imooc.com/learn/questiondetail/36007.html 
【二期进阶Tomcat集群和Redis分布式课程已经上线】
http://coding.imooc.com/class/162.html  
【同学,如果学完感觉自己有提高,有收获,Geely恳请同学帮忙给咱们课程10分好评呀,非常非常感谢!同学的支持也是我最大的动力!】


1 回复 有任何疑惑可以回复我~
  • 提问者 Deer_stu #1
    非常感谢Geely老师的回复!继续前行
    回复 有任何疑惑可以回复我~ 2018-02-05 12:12:29
  • Geely 回复 提问者 Deer_stu #2
    不用客气~~有问题随时发到问答区我们继续交流~~
    回复 有任何疑惑可以回复我~ 2018-02-06 22:15:23
  • Geely 回复 提问者 Deer_stu #3
    等同学学好了上线了,课程求一个10分好评呀,谢谢啦嘿嘿~~
    回复 有任何疑惑可以回复我~ 2018-02-06 22:15:42
提问者 Deer_stu 2018-01-30 19:16:47

Geely老师,你好!这个问题我已经暂时解决了,但是同时我也发现一个问题,不知道是不是存在。

1、我出现问题的时候是因为我测试接口使用的是mac的一个应用Postman,当调用add_category.do就会造成tomcat报错(调用其它的接口是成功的)。

2、我再尝试了对比了逻辑代码后,实在没有办法后,下载了Restlet Client扩展,调用add_category.do就可以成功。

3、然后我使用了另外一个mac上的软件Paw,调用add_category.do也是可以的。

所以我想咨询下,是否有某种请求会造成项目报错崩溃呢?

PS:在发送请求的时候Content-Type: application/x-www-form-urlencoded是否必须这样配置,我发现不是必须的是吗?

1 回复 有任何疑惑可以回复我~
提问者 Deer_stu 2018-01-30 17:40:26

这是我的请求界面:

https://img1.sycdn.imooc.com//szimg/5a703d750001709119201070.jpg

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信