spring boot tomcat 请求出现RFC 7230 and RFC3986的错误,解决办法
2018-03-14 11:40
786 查看
昨天平台请求另一个为web系统,出现一致等待不响应的现象。
在本地测试也是出现了这样的问题,细心留意下控制台就能看到具体的错误,具体的描述忘了,
意识 不符合 RFC 7230 and RFC3986 的标准。
这个问题是高版本tomcat中的新特性:就是严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。而我们的系统在通过地址传参时,在url中传了一段json,传入的参数中有"{"不在RFC3986中的保留字段中,所以会报这个错。
参考了https://www.cnblogs.com/wsygdb/p/7661220.html
在本地测试也是出现了这样的问题,细心留意下控制台就能看到具体的错误,具体的描述忘了,
意识 不符合 RFC 7230 and RFC3986 的标准。
这个问题是高版本tomcat中的新特性:就是严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。而我们的系统在通过地址传参时,在url中传了一段json,传入的参数中有"{"不在RFC3986中的保留字段中,所以会报这个错。
处理方法
.../conf/catalina.properties中,找到最后注释掉的一行 #tomcat.util.http.parser.HttpParser.requestTargetAllow=| ,改成tomcat.util.http.parser.HttpParser.requestTargetAllow=|{},表示把{}放行参考了https://www.cnblogs.com/wsygdb/p/7661220.html
相关文章推荐
- SpringBoot内置tomcat出现APR版本过低解决办法
- SpringBoot页面表单请求失败,错误400的解决办法
- Springboot内置Tomcat版本导致的“The valid characters are defined in RFC 7230 and RFC 3986”错误
- 启动Tomcat 出现 Can't load AMD 64-bit .dll on a IA 32-bit platform错误的解决办法
- u-boot移植时出现inline function 'coloured_LED_init' cannot be declared weak及相关错误时的解决办法!
- Spring Boot @PathVariable出现点号"."时导致路径参数截断获取不全的解决办法
- SpringBoot集成Swagger2实现Restful(类型转换错误解决办法)
- eclipse下启动tomcat出现Setting property 'source' to 'org.eclipse.jst.jee.server: '错误的解决办法
- linux下tomcat配置cronolog出现的一些错误解决办法!
- eclipse下启动tomcat出现Setting property 'source' to 'org.eclipse.jst.jee.server: '错误的解决办法
- springBoot PUT请求接收不了参数的解决办法
- springboot 内置默认启动tomcat容器遇到The valid characters are defined in RFC 7230 and RFC 3986”
- struts2.1+spring2.5+hibernate3框架搭建时出现的错误及解决办法
- eclipse中tomcat插件出现OutOfMemoryError错误的解决办法
- 关于tomcat启动出现Line: 220 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1错误的解决办法
- eclipse下启动tomcat出现Setting property 'source' to 'org.eclipse.jst.jee.server: '错误的解决办法
- 启动Tomcat 出现 Can't load AMD 64-bit .dll on a IA 32-bit platform错误的解决办法
- U_BOOT移植时出现相关错误时解决办法
- SpringBoot集成Swagger2实现Restful(类型转换错误解决办法)
- 编译linux内核时出现"mkimage" command not found - U-Boot images will not be built错误的解决办法