Spring定时器上传FTP服务器遇到的问题

今天在通过Spring定时器上传FTP服务器文件时遇到了几个问题,耗时半天终于找到原因,结果是自己埋的坑。。。
1)首先是写了一个FTP上传下载的工具类,然后在实现了QuartzJobBean接口的类中写具体的业务逻辑,从后台取出数据之后,调FTP工具类的静态方法上传文件。
在spring配置文件中配置号job之后启动服务,观察到job中的代码执行到FTP工具类之后就像程序阻塞了一样,即不报错也不继续运行。在工具类中添加了一个静态代码块看类加载有没有问题。
发现静态常量的赋值和静态代码块都是执行的,调用到自定义上传方法时就没有任何反应了。因为这个工具类在其他项目中也使用过,没有任何问题。所以怀疑是不是Job调这个类的静态方法有问题,尝试在job中直接newFTP工具类结果程序走到这里也是毫无反应。
实在是百思不得其解,实在没有方向,只有不抱希望的看看是不是jar包的版本问题,看了quartz和commons-net包的版本也没什么问题,无意中点了一下WEB-INF/lib目录观察了一下发布项目用的jar包,结果竟然没有commons-net包,因为这个项目原来没有用过这个包,所以这个是后来加进去的,结果只在Reference Libraries中引入了jar包,在项目发布目录却没有这个包,结果导致代码编写时是可以引用到包里面的类,但是发布后却有问题。。。
2)在FTP工具类中执行到切换工作目录成功后,开始执行FTPClient.storeFile(String remote, InputStream local)方法,但是始终返回false,自己尝试手动将文件拖到服务器目录上也是成功的。怀疑是不是目录权限问题,登录服务器上执行chmod -R 777 目录名,结果竟然成功了,但是原来的权限755已经具有读写权限了,应该满足要求了啊。按道理来说并不需要可执行权限,仔细观察了一下文件夹属性发现,文件夹的所属用户和用户组都是root,这才想起来这个目录是在服务器上通过root用户建立的,而本地代码中登录的ftp用户是test,并不具有root用户的权限,通过chown test:test 文件夹命令修改文件夹的所属用户和用户组,并还原文件夹的权限为读写权限,然后测试代码,上传成功。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值