将皕杰报表demoserver中的演示项目report部署到tomcat8最新版本后,当访问报表的URL中含有中文时,访问报表报错如下:

十一月 11, 2019 2:38:58 下午 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:479)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:684)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
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)

老版本Tomcat给版本不会出现这问题,经排查发现,原来最新的tomcat从7.0.73、8.0.39、8.5.7后增加了一个新特性,就是严格按照 RFC7230和RFC 3986规范进行访问解析,而 新规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。
由于请求中包含了中文字符,所以tomcat无法正确解析请求参数,导致出错。
解决方案:
1.降低tomcat的版本。
2.采用最新tomcat版本。对请求链接进行编码,report项目中所有编码格式都改成utf-8;对访问皕杰报表的链接进行转码处理。

tomcat历史版本新特性_tomcat升级后报错RFC 7230 and RFC 3986相关推荐

  1. tomcat历史版本新特性_OBS V26大版本新特性简介

    9月底10月初OBS又双叒更新了,大版本来到了V26, 这一次又增加了不少实用功能.今天就给大家逐一介绍一下V26版本的主要功能,原文链接如下: https://github.com/obsproje ...

  2. java历史版本新特性

    已经到java17,java的发展真快的,java敢说第二,没人敢说第一啊,very hot. JDK JDK 全称 Java Development Kit,是 Java 开发环境.我们通常所说的 ...

  3. tomcat升级后报错: Invalid character found in the request target.

    准备上线一个项目.本地环境有两套环境,一个测试环境,一个正式环境.项目在测试环境已验证测试通过,准备部署到正式环境.但部署后任何一个请求都报错,报错日志如下: java.lang.IllegalArg ...

  4. React16、17、18版本新特性

    react-16版本新特性 一.hooks import { useState } from 'react'function App() {// 参数:状态初始值比如,传入 0 表示该状态的初始值为 ...

  5. Spark 3.2.0 版本新特性 push-based shuffle 论文详解(一)概要和介绍

    前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 目录 Spark 3.2.0 ...

  6. Go 1.18 版本新特性详解!

    导语 | 本文推选自腾讯云开发者社区-[技思广益 · 腾讯技术人原创集]专栏.该专栏是腾讯云开发者社区为腾讯技术人与广泛开发者打造的分享交流窗口.栏目邀约腾讯技术人分享原创的技术积淀,与广泛开发者互启 ...

  7. Android Q(10.0 API29)版本新特性和兼容性适配

    摘要 1.本文档基于谷歌AndroidQ官方文档和一加Q版本应用兼容性整改指导 2.本文档主要对影响比较大的部分进行简单总结,内容并不全面: 3.版本号对应关系: Android-Q = Androi ...

  8. Android studio 4.2新特性及升级异常

    Android studio 版本及特性系列目录 Android 12 终于来了,你准备好了吗? Android studio 4.2新特性 Android studio 4.1新特性 Android ...

  9. Android Q(10.0)版本新特性和兼容性适配

    北京时间2019年3月14日Google正式对外发布Android Q Beta 1及预览版SDK,这意味着安卓开发者们又即将迎来一年一度的新版本适配工作了.Android Q 为开发者们带来了许多新 ...

最新文章

  1. 工作流引擎--swamp
  2. Reactjs 踏坑指南3:一些例子(未完成)
  3. 科普 | USB 协议与接口
  4. Eclipse中SVN标记,提交人,时间等版本信息消失
  5. (数论)51NOD 1136 欧拉函数
  6. 生成一定范围内的互不相同的随机数的方法比较
  7. java开发之权限管理详解
  8. Gxlcms有声小说系统/小说听书系统源码
  9. 利用pytorch实现图像分类
  10. 福禄克网络VERSIV(威测)电缆认证系统实现ROI更大化
  11. 计算机网络线接法,电脑网线水晶头接法图解
  12. 外贸独立站SEO技巧
  13. React-native项目使用逍遥游模拟器运行
  14. SAP会计借贷(转载)
  15. Android实现拨打电话
  16. 个人计算机革命(计算机历史)
  17. 使用魔法上网后,浏览器无法上网-解决办法
  18. Vim插件#Vim Project项目管理
  19. 【学员心得】如何三招通关云计算HCIE认证
  20. 计算机主机一会运行一会又停止,电脑有时能开机有时不能开机是什么原因

热门文章

  1. 医疗实体链接(标准化)论文解读 (附代码) A Lightweight Neural Model for Biomedical Entity Linking
  2. tensorflow2.0中dataset API 总结
  3. CVPR2019--Binary Ensemble Neural Network--二值CNN网络集成
  4. 【pytorch】Metrics的工作原理
  5. 谷歌浏览器删除相同重复无效书签
  6. CSDN-markdown编辑器
  7. uniny 物体运动到一个点停止_隐藏的几何:各类随机物体中的深层联系
  8. docker commit (从容器创建一个新的镜像)
  9. C++搞懂深拷贝初始化=与赋值(运算符重载)=的区别
  10. html5 文本框限制,html中input禁止输入(禁止获得焦点)多种方法及input限制数字和长度...