【问题标题】:store a file into a ftp server using apache commons doesn't work使用 apache commons 将文件存储到 ftp 服务器中不起作用
【发布时间】:2012-04-30 11:55:36
【问题描述】:

我正在尝试使用 apache commons java 库将文件存储到 ftp 服务器中。我正在使用 commons-net-3.0.1.jar。问题是当我尝试将文件推送到服务器时,调用

存储文件()

总是返回假。它不会抛出任何异常。什么都没有,只是默默地回复假。如果我尝试手动推送文件,即在 linux 系统中使用普通的“ftp”客户端(我的意思是使用 ftp 命令连接到 ftp 服务器并使用 put 命令存储文件),那么它将文件放入服务器。

我什至不知道如何调试它。能否请您告诉我如何才能了解问题及其解决方案。

我检查了服务器日志,当我尝试通过 java 发布时,日志显示 425 响应代码无法建立连接。但是当我手动使用时,它会显示 226 响应。

【问题讨论】:

  • 请检查您对两者使用的用户名和密码是否相同,或者至少确保 Java 应用程序使用具有必要权限的凭据。发布您正在使用的代码也会有所帮助。
  • commons-net 是开源的,你可以尝试调试到他们的代码中。
  • @npinti :- 凭据相同,我检查了它们,服务器日志显示“登录成功”
  • @Eli :- 我尝试使用源代码进行调试,但无法解决问题,我仍在尝试,但我想如果我继续留在这个社区,我会得到一个指向我可以在哪里的指针搜索
  • @Thebestshoot:我建议您发布您正在使用的代码。

标签: java ftp apache-commons


【解决方案1】:

注意:FTP 不是通过代码向服务器上传/下载数据的可靠协议。如果您需要可靠的解决方案,FTP 不适合您。改用 ssh。

要回答您的问题:将ProtocolCommandListener 添加到您的SocketClientFTP 扩展此)。然后你至少可以打印ProtocolCommandListener()protocolReplyReceived()中的消息

【讨论】:

  • 我试过这样做效果很好,但是我们是否有其他工具来调试天气数据是否正确输出以及命令,我的意思是如果在生产环境中我得到这个问题我怎么能调试这个,如果我没有这个代码?有什么办法吗
  • 向您的应用添加日志框架。这些可以使用可以与应用程序一起部署的文件进行配置。这样,您可以根据需要启用/禁用日志记录。也就是说:FTP 不是适合生产使用的协议。它是为人类设计的,而不是自动错误恢复,因此您每周将花费几个小时来一遍又一遍地解决相同的问题。
猜你喜欢
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-26
  • 2019-05-21
  • 2020-01-29
  • 2013-05-30
相关资源
最近更新 更多