Tomcat上java.lang.IllegalStateException: Optional int parameter 'id' is not present
2016-04-07 12:11
681 查看
今日, 本人在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"
然后, 在本地模拟改用例, 发现可以正常执行, 而另一个同事说要把超长的图片参数放到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"
相关文章推荐
- solr4.5部署到tomcat
- web容器和tomcat和servlet关系总结
- tomcat域名配置
- Spring JMS 整合Tomcat和ActiveMQ
- Tomcat中监控JVM内存使用情况
- tomcat
- tomcat修改默认编码格式
- 设置Tomcat的UTF-8编码
- 【转】MyEclipse8.5集成Tomcat7时的启动错误:Exception in thread “main” java.lang.NoClassDefFoundError org/apache/commons/logging/LogFactory
- Tomcat与jdk在Linux上的安装与配置
- 设置Tomcat内存
- 部署两个tomcat后,系统提示cannot set user id: Resource temporarily unavailable
- linux下Tomcat安装
- Eclipse的Servers视图中无法添加Tomcat6/Tomcat7
- tomcat 那些事
- Tomcat启动报Error listenerStart错误
- spring+tomcat8实现websocket
- Tomcat 7.0.68安装配置过程
- web服务器与文件服务器分离之磁盘映射
- 1.8.1 nginx +Tomcat 多端口