记录一次linux下微服务文件上传失败

记录一次linux下微服务文件上传失败,第1张

生产环境文件上传服务发现经常报错:

Failed to parse multipart servlet requestnested exception is java.lang.RunTimeException

提示上传文件的临时路径找不到.

在linux系统中,springboot应用服务在启动(java -jar 命令启动服务)的时候,会在 *** 作系统的/tmp目录下生成一个tomcat*的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。

由于临时/tmp目录下的文件,在长时间(10天)没有使用的情况下,就会被系统机制自动删除掉。

在项目配置文件中自定义临时文件路径

@Bean

MultipartConfigElement multipartConfigElement() {

        MultipartConfigFactory factory = new MultipartConfigFactory()

        File tmpDirFile = new File(tempDir)

        // 判断文件夹是否存在

        if (!tmpDirFile.exists()) {

            //创建文件夹

            tmpDirFile.mkdirs()

        }

        factory.setLocation(tempDir)

        return factory.createMultipartConfig()

    }

主目录没有写权限, 可以 chmod 0777 /var/lib/tftpboot2.Error code 1: File not found在/etc/xinetd.d/tftp配置文件中,server_args后加上 -c 选项,方可上传service tftp{socket_type = dgramprotocol= udpwait= yesuser= rootserver = /usr/sbin/in.tftpdserver_args = -s /var/lib/tftpboot -cdisable = noper_source = 11cps = 100 2flags = IPv4}3.Transfer timed out.如果第1,2条都没有问题,第3条可能是IPv6的原因,例如 在命令行下输入# tftp localhost系统可能使用的是IPv6的 ::1 地址,如下WireShark截图:

解决:MTU从1500改为1400 在7层网络协议中,MTU是数据链路层的概念。MTU限制的是数据链路层的payload,也就是上层协议的大小,例如IP,ICMP等。 MTU解释参考: https://blog.csdn.net/passionkk/article/details/100538418MTU修改值参考: https://blog.csdn.net/weicao1990/article/details/52227896


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7599524.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存