项目由多个微服务组成,通过Zuul进行API接口的网关转发。项目上线后正常运行,但运行一段时间后偶尔会出现文件上传接口返回值为空的问题。接口的状态为200,但通过浏览器调试发现response为空(因此断定为Zuul层面错误)。
考虑的解决问题的方向:
1. 文件过大导致上传失败?
Zuul上传文件 - 沟渠映明月 - 博客园 (cnblogs.com)
Spring boot默认的文件上传大小限制为1MB,但是即使修改之后依然无法解决问题
2. zuul的临时文件目录被定时清理导致
这个问题可以通过为server.tomcat.basedir设置一个指定的目录来解决
SpringBoot文件上传异常之提示The temporary upload location xxx is not valid
这个方法部分解决了问题,加上此配置后出现报错的概率小了,但依然会出现问题
3. Zuul过滤了HTTP的header导致后端无数据?
zuul 巨坑 跨域 请求 正常 但没有返回 结果_自由の力-CSDN博客](https://blog.csdn.net/taoli1986/article/details/95787546)
加上配置后无效果。
解决问题中的发现
在Spring boot 2.0中spring.servlet.http.multipart被替换为了spring.servlet.multipart,请注意Spring boot的版本问题。
java - How exactly spring.http.multipart.enabled is different from spring.servlet.multipart.enabled? - Stack Overflow
网友评论