博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringMVC没有接受到参数的坑
阅读量:5971 次
发布时间:2019-06-19

本文共 878 字,大约阅读时间需要 2 分钟。

其实说上来也不是SpringMVC的坑。

相同的一份代码,我在windows上用mvn打成jar放到linux上执行,POST请求可以接收到参数;

但是我直接在linux上从git拉取分支,并在linux上打包部署这个POST请求就是接受到不到参数,真的是一毛一样的代码打成的包,开始我解决的思路在以下几个地方:

mave在linux下打包和windows下打包有差异?找了很久发现没有这个问题。

spring mvc的源码也翻了一下,发现问题是在Request的body中有byte数组,字符串的参数以字节的形式放在其中,但是ParameterMap中就是一个参数都没有,而windows下打包运行Parameter中就有参数,虽然发现了这个异样,但是没能定位问题,以为是tomcat有问题。

spring boot的tomcat接受参数有问题,在windows下和linux下不一样?网上查了一下内置的tomcat似乎没什么bug。

真的是要抓狂了,搞了好几天都没有解决这个问题,害的我写的一键部署的bash脚本都没法用了,每次都是在windows上打包,然后用ftp发到linux上部署,太痛苦了。

最后准备放弃的放弃的时候,突然随便点点目录,在某个犄角旮旯还有一个文件夹,里面有4个Filter(接手别人的项目),我真是日了狗了,立马把这4个Filter删掉,然后重新在linux下打包部署,测试一下果然收到了参数(POST,form)。

令我疑惑的是为啥同样是一份代码,windows上可以接受到参数,而linux接受不到参数?我没有深究,已经受伤了。。。

另外,要吐槽一下这个代码,虽然被我伤了n多的AOP和Filter,没想到还是有一个遗留的Filter。就我个人而言,业务可以复杂,但是项目结构不要负载,不要弄各种AOP和Filter,除非不得已。除了问题真的可以搞死人。不要随便秀操作,谢谢。

P. S.

HttpServletRequest中的流只能读一次,再读的话就会报错,好像以后特殊的处理可以读两次

转载地址:http://cawox.baihongyu.com/

你可能感兴趣的文章
Codeforces Round #503 (by SIS, Div. 1)D. the hat
查看>>
第十一章 块(上)
查看>>
Layabox 常用操作
查看>>
ASP.NET应用程序
查看>>
学习javascript必须订阅30个程序员的Blog
查看>>
C#面向对象9 字符串
查看>>
C#日期格式化(转)
查看>>
[CLPR] 用于加速训练神经网络的二阶方法
查看>>
西门子Step7找不到有效授权的解决方法
查看>>
将SVN的代码推送到码云的步骤
查看>>
C#Excel文件读取问题及解决办法
查看>>
啸叫抑制(howling suppression)
查看>>
基础005_V7-Select IO
查看>>
Norm(范数)
查看>>
类和对象
查看>>
sersync之不洗澡
查看>>
Web环境从Apache转Nginx后页面报404错误
查看>>
SysTick定时器的一个简单应用
查看>>
[MicroPython]TPYBoard v102 CAN总线通信
查看>>
前台服务(在通知栏显示服务)
查看>>