Tomcat上java.lang.IllegalStateException: Optional int parameter 'id' is not present

今日, 本人在tomcat+spring mvc平台的服务器上遇到java.lang.IllegalStateException: Optional int parameter ‘id‘ is not present异常, 很是怪异, mvc方法里面的id为int型, 明明是有值的, 为什么说没有? 改为Integer也不行, mvc方法直接无响应!

然后, 在本地模拟改用例, 发现可以正常执行, 而另一个同事说要把超长的图片参数放到Mvc方法的最后就可以正常访问! 怪异!

后来经过多次试验, 发现是其他参数的长度很长很长,例如存放图片的base64, 可能会超出tomcat的默认的post最多长度(2M), 但是网上很多人说超长抛出的异常应该是"post too large", 但是却抛出了另一种异常: :java.lang.IllegalStateException: Optional int parameter ‘id‘ is not prese nt but cannot be translated into a null value due to being declared as a primiti ve type. Consider declaring it as object wrapper for the corresponding primitive  type.

本人的理解是sping mvc忽略了post too large异常, 直接对请求参数内容进行截取, 导致了id参数为空, 因此才出现了这样怪异的现象.

解决的办法当然就是在tomcat的server.xml里面加一个maxPostSize="0"

Tomcat上java.lang.IllegalStateException: Optional int parameter 'id' is not present

时间: 2024-08-01 00:04:19

Tomcat上java.lang.IllegalStateException: Optional int parameter 'id' is not present的相关文章

访问tomcat出现java.lang.IllegalStateException No output folder错误解决方法

访问tomcat出现java.lang.IllegalStateException: No output folder错误解决方法 问题:tomcat分为安装版和解压缩版,解压缩版如果解压到安装盘,在浏览器中访问http://localhost:8080,可能会出现500错误,错误提示如下: localhost:8080 java.lang.IllegalStateException: No output folder 原因如下:tomcat目录没有被读写的权限,导致文件不能被编译到指定的工作目

tomcat启动报错:java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException:

tomcat日志: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at

tomcat启动失败,java.lang.IllegalStateException

tomcat日志: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at

访问tomcat出现HTTP Status 500 - java.lang.IllegalStateException: No output folder

问题:tomcat分为安装版和解压缩版,解压缩版如果解压到安装盘,在浏览器中访问http://localhost:8080,可能会出现500错误,错误提示如下: localhost:8080 java.lang.IllegalStateException: No output folder 原因如下:tomcat目录没有被读写的权限,导致文件不能被编译到指定的工作目录中. 解决办法: 找到tomcat目录,右键"属性--->安全--->编辑",找到Users,将"

Tomcat部署项目时出错java.lang.IllegalStateException: ContainerBase.addChild: start:org.apache.catalina.Life

Tomcat部署项目时出错java.lang.IllegalStateException: ContainerBase.addChild: start:org.apache.catalina.LifecycleException: Failed to start component[StandardEngine[Catalina].StandardHost[localhost].StandardContext[/项目名]] 一个很简单的项目,没有出现编译错误,从Eclipse中用Tomcat v

关于 java 上传,下载和导入报java.lang.IllegalStateException异常解决办法

java.lang.IllegalStateException异常解决办法 最近在使用response.sendRedirect()时出现如下错误:java.lang.IllegalStateException            org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:423) 经过分析.查看jdk文档终于找到解决的办法,在response.sendRedirect()方法后加

java.lang.IllegalStateException:Web app root system property already set to different value 错误原因及解决 Log4j

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口 服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就 是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 其实呢,我觉得他就是一个能对我们的WEB应用监控的组件,让我们可以了解到我们的程序运行的情况 ,以及出错后

junit测试时,出现java.lang.IllegalStateException: Failed to load ApplicationContext

课程设计要求进行junit测试,我是在已经做好的ssh项目上做的测试,测试类代码如下 package com.zhang.web.services; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; import javax.annotation.Resource; import org.junit.runner.RunWith; im

批量下载的实现及java.lang.IllegalStateException异常

在工作流的一张表单里可能会有多个步骤上传附件,在用户的待办中往往会存在多条带有附件的任务,如果一一打开并且点击下载链接下载,不仅费时,而且繁琐,用户体验较差. OA系统采用的是FastDFS做为文件服务器,FastDFS的Java客户端提供了上传.下载等功能供调用. 在我之前的文章里对此有描述,目前已有的代码有对文件的批量上传功能,但下载的参数往往是针对单个文件.比如单个文件的下载方法如下: /**  * 文件下载  * @author chao.gao  * @date 2014-2-17 下