首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Tomcat 8.5和Spring Boot 2.2设置中,Request body或query param的数字大于10位显示404错误

基础概念

Tomcat 是一个开源的 Java Servlet 容器,用于处理 Web 请求。Spring Boot 是一个用于简化 Spring 应用程序初始搭建以及开发过程的框架。它提供了自动配置功能,可以快速启动和运行应用程序。

问题描述

在使用 Tomcat 8.5 和 Spring Boot 2.2 时,如果 Request body 或 query param 中的数字大于 10 位,会显示 404 错误。

原因分析

这个问题的根本原因可能是由于 Tomcat 的默认配置限制了请求参数的长度。Tomcat 默认情况下对 URL 参数的长度有限制,如果参数过长,可能会导致 404 错误。

解决方法

1. 修改 Tomcat 配置

可以通过修改 Tomcat 的配置文件 server.xml 来增加 URL 参数的长度限制。具体步骤如下:

  1. 找到 Tomcat 的安装目录,进入 conf 文件夹。
  2. 打开 server.xml 文件。
  3. 找到 <Connector> 标签,并添加或修改 maxHttpHeaderSizemaxParameterCount 属性。例如:
代码语言:txt
复制
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           maxHttpHeaderSize="8192"
           maxParameterCount="2000" />
  • maxHttpHeaderSize:设置 HTTP 请求头的最大大小,默认值为 8192 字节。
  • maxParameterCount:设置单个请求的最大参数数量,默认值为 1000。

2. 使用 Spring Boot 配置

Spring Boot 也提供了配置选项来限制请求参数的长度。可以在 application.propertiesapplication.yml 文件中进行配置。例如:

application.properties:

代码语言:txt
复制
server.tomcat.max-http-header-size=8192
server.tomcat.max-parameters=2000

application.yml:

代码语言:txt
复制
server:
  tomcat:
    max-http-header-size: 8192
    max-parameters: 2000

应用场景

这种配置适用于需要处理大量参数或大尺寸请求头的应用场景,例如:

  • 大数据传输
  • 文件上传
  • 复杂的 API 请求

参考链接

通过以上配置,可以有效解决 Tomcat 8.5 和 Spring Boot 2.2 中 Request body 或 query param 数字大于 10 位显示 404 错误的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

记一次升级Tomcat

问题一:请求js文件报404错误     其实这个问题严格来讲不是升级到Tomcat8出现的问题,而是升级到Tomcat9出现的问题。...数组中的值才不会设置成true,所以我们需要追踪REQUEST_TARGET_ALLOW数组的赋值 if (!...问题二:Cookie设置报错      这个问题就是在升级到Tomcat8.5以上的时候会出现的,具体原因是Tomcat8.5采用的Cookie处理类是: Rfc6265CookieProcessor,...规范对domain有以下要求 1、必须是1-9、a-z、A-Z、. 、- (注意是-不是_)这几个字符组成 2、必须是数字或字母开头 (所以以前的cookie的设置为.XX.com 的机制要改为 XX.com...即可) 3、必须是数字或字母结尾 原来的代码设置domain时如下: cookie.setDomain(".aaa.com"); 这就导致设置domain的时候不符合新的规范,直接报错如下: java.lang.IllegalArgumentException

1.9K30
  • springBoot学习(五)springBoot自定义banner与web开发

    方式四 自定义图片名称,通过在application.properties中添加“spring.banner.image.location=自定义名称.jpg” 在启动项目的时候,文字和图片可以共同显示...指定前缀和后缀 spring.mvc.view.prefix=/ spring.mvc.view.suffix=.jsp prefix=/,这里的/指的是webapp,为jsp根目录,idea中可以设置...=springBoot_demo_logs #是否延迟在文件名中包含日期戳,直到旋转时间 server.tomcat.accesslog.rename-on-rotate=false #设置请求的IP地址...server.tomcat.accesslog.rotate=true #日志文件名称的后缀 server.tomcat.accesslog.suffix=.log tomcat最大线程数和连接数设置...#设置tomcat的最大线程数 server.tomcat.max-threads=1000 #设置tomcat的最大连接数 server.tomcat.max-connections=20000

    74730

    一个项目的SpringCloud微服务改造过程

    解析:依赖的mybatis-spring-boot-starter工程依赖了tomcat的数据源,spring-boot-autoconfigure-starter的DataSourceAutoConfiguration...先看mybatis-spring-boot-starter中mybatis-spring-boot-autoconfigure的spring.factories文件 # Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfiguration...":null } 1.3 注意事项 1.3.1 内置tomcat版本太高引发的问题 SpringBoot1.5默认使用内嵌tomcat8.5版本,而原来SpringMVC的SSO部署在tomcat7上。...必须是数字或字母开头 (之前是以.creditease.corp 会报错tomcat cookie domain validation异常,最后改成了 creditease.corp)。...必须是数字或字母结尾。 二、前后端分离 2.1 解决跨域问题 由于是两个不同的应用,必然会有两个不同的端口。

    2.3K20

    hibernate-validator校验参数(统一异常处理)

    被注释的元素必须为 false @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @DecimalMin...(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 @DecimalMax(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 @Size(max, min)...具体的对应关系可以参照如下表格: spring boot 版本 validation依赖 spring-boot-starter-web传递校验依赖 > 2.3.x 需要手动引入spring-boot-starter-validation...根据请求方式、携带的内容以及实际应用场景,一般有三类: POST Request Body; GET PathVariable (如/foos/{id}); GET Query Param...q=param) 上面三种基本覆盖了大部分的开发场景 1.验证Request Body 接收参数的包装类 @Getter @Setter public class RequestParam {

    1.5K20

    SpringBoot学习笔记(十一:使用MongoDB存储文件 )

    1.1、添加依赖 spring-boot-starter-data-mongodb:用来操作MongoDB spring-boot-starter-thymeleaf:前端页面采用thymeleaf模板...对html元素格式要求严格,设置它的mode为HTML,忘记结束标签后不会报错 spring.thymeleaf.mode=HTML # 编码 spring.http.encoding.charset...在文件的操作过程中,可以通过可视化工具或shell来查看存储在MongoDB中的文件: 可以看到,在fileModel集合中存储了我们上传的文件,文件的内容是以二进制的形式存储 ?...=null){ //根据文件ID删除fs.files和fs.chunks中的记录 Query deleteFileQuery = new Query()....在上传和删除数据的过程中,可以通过可视化工具或shell来查看MongoDB中的数据 fileDocment中的数据:fileDocment是一个普通的集合,对应地以文档的形式存储了FileDocument

    3.4K41

    Spring Boot(1)-构建应用实践

    ,第三个第四个可以点上),如下图 b) 设置maven的setting.xml文件路径 2、创建应用 使用Spring Boot框架可以大大加速Web应用的开发过程,首先在Maven项目依赖中引入...但是 Spring Boot 也提供了不同的选项,比如日志框架可以用 Logback 或 Log4j,应用服务器可以用 Tomcat 或 Jetty。...如果访问http://localhost:8080/hello,则会出现404 Not Found错误,因为我们并没有编写任何方法来处理/hello请求。 4....如果访问http://localhost:8080/hello,则会出现404 Not Found错误,因为我们并没有编写任何方法来处理/hello请求。...还是get2) 2)@RequestParam : 这个注解用来绑定单个请求数据,既可以是url中的参数,也可以是表单提交的参数和上传的文件 它有三个属性: value 用于设置参数名

    45920

    SpringMVC基础详解

    匹配失败,抛错404 匹配**例子 spring6中**通配符只能出现在路径的末尾,否则抛错,spring5可以不用在末尾 @RequestMapping("/testValueAnt/**")...,包括设置状态码、响应头和响应体 默认只返回body的内容作为响应体,不是完整的ResponseEntity对象(包括状态码和头部) 6.1、返回字符串 如果ResponseEntity的body是字符串...() { // return ResponseEntity.status(404).body("Resource not found"); - 自定义错误码 return ResponseEntity.status... body> 2.2、返回错误响应对象 @ControllerAdvice public class ExceptionController...,例如添加头信息、调整响应内容格式等 2、拦截器和过滤器的区别 过滤器更注重在请求和响应的流程中进行处理,可以修改请求和响应的内容,例如设置编码和字符集、请求头、状态码等 拦截器则更加侧重于对控制器进行前置或后置处理

    17510

    Tomcat 7 升级到 Tomcat 8 历程

    问题一:请求js文件报404错误     其实这个问题严格来讲不是升级到Tomcat8出现的问题,而是升级到Tomcat9出现的问题。...数组中的值才不会设置成true,所以我们需要追踪REQUEST_TARGET_ALLOW数组的赋值 if (!...问题二:Cookie设置报错     这个问题就是在升级到Tomcat8.5以上的时候会出现的,具体原因是Tomcat8.5采用的Cookie处理类是: Rfc6265CookieProcessor,...规范对domain有以下要求 1、必须是1-9、a-z、A-Z、. 、- (注意是-不是_)这几个字符组成 2、必须是数字或字母开头 (所以以前的cookie的设置为.XX.com 的机制要改为 XX.com...即可) 3、必须是数字或字母结尾 原来的代码设置domain时如下: cookie.setDomain(".aaa.com"); 这就导致设置domain的时候不符合新的规范,直接报错如下: java.lang.IllegalArgumentException

    2.1K10

    Spring Boot 最佳实践(二)集成Jsp与生产环境部署

    (作用域)值为provided,表示打包的时候不用打包进去,其他设备会提供,如果打包进去会和外部Tomcat提供的jar冲突,导致项目启动失败。...需要添加systemPath的属性来定义路径 4.编写Spring MVC代码 经过前3步的配置,项目配置部分已经完成的差不多了,接下来就是代码的编写了,代码的编写和Spring MVC一样,分为两部分...为了更好的演示Spring Boot 的功能,我们会尽可能的简化业务逻辑,在这个示例中我们创建一个Cat类,设置标签hi="Hello Cat",在页面输出标签即可。...} body> 这个jsp只做了一件事,把java类里面的${hi}标签的值显示出来。...404,而打包为war的时候回包含JSP文件,所以需要把打包格式修改为war. jar和war的区别?

    1.8K50

    SpringBoot2核心技术-web开发

    再次封装到JavaBean中 ** ** GenericConversionService:在设置每一个值的时候,找它里面的所有converter那个可以将这个数据类型(request带来参数的字符串...包括数据和视图地址 2、方法的参数是一个自定义类型对象(从请求参数中确定的),把他重新放在 ModelAndViewContainer 3、任何目标方法执行完成以后都会返回 ModelAndView(数据和视图地址...1、默认规则 默认情况下,Spring Boot提供/error处理所有错误的映射 对于机器客户端,它将生成JSON响应,其中包含错误,HTTP状态和异常消息的详细信息。...error/下的4xx,5xx页面会被自动解析; 2、定制错误处理逻辑 自定义错误页 error/404.html error/5xx.html;有精确的错误状态码页面就匹配精确,没有就找 4xx.html...> spring-boot-starter-tomcat </exclusions

    76630

    Unregistering JMX-exposed beans on shutdown

    解决Spring Boot应用启动及404问题 在开发和部署Spring Boot应用程序时,遇到问题是很常见的。本篇博客将为您介绍一种常见的启动问题以及对应的解决方案。...摘要 本文将探讨在启动Spring Boot应用程序时出现的两个常见问题:一是启动成功但无法访问接口,返回404错误;二是应用启动失败。...然而,在开发和部署过程中,您可能会遇到各种问题。这些问题可能涉及应用的配置、依赖项、服务器问题等。本篇博客将关注两个常见的问题:启动成功但返回404错误,以及应用启动失败。...解决方案 如果应用程序启动失败,首先要检查日志中的错误信息,以了解具体的问题。在这个例子中,似乎应用程序缺少了Tomcat容器。...如果有其他依赖关系或配置问题,您可以根据错误信息逐步排查并解决。 总结 在开发和部署Spring Boot应用程序时,遇到问题是正常的。

    14410

    Spring Boot 中关于自定义异常处理的套路!

    4-12-1.jpg 在 Spring Boot 项目中 ,异常统一处理,可以使用 Spring 中 @ControllerAdvice 来统一处理,也可以自己来定义异常处理方案。...Spring Boot 中,对异常的处理有一些默认的策略,我们分别来看。...默认情况下,Spring Boot 中的异常页面 是这样的: 我们从这个异常提示中,也能看出来,之所以用户看到这个页面,是因为开发者没有明确提供一个 /error 路径,如果开发者提供了 /error...路径 ,这个页面就不会展示出来,不过在 Spring Boot 中,提供 /error 路径实际上是下下策,Spring Boot 本身在处理异常时,也是当所有条件都不满足时,才会去找 /error...注意,动态页面模板,不需要开发者自己去定义控制器,直接定义异常页面即可 ,Spring Boot 中自带的异常处理器会自动查找到异常页面。 页面定义如下: 页面内容如下: <!

    1K00
    领券