无法使用apache client for Java从heroku连接到FTP服务器。503错误登录不正确
我正在编写一个将文件上传到FTP服务器的应用程序。为了连接FTP服务器,我使用了org.apache.commons.net.FTP中的FTPClient。当我在本地运行代码时,一切正常,但当尝试从Heroku dyno登录到ftp时出现问题。服务器日志中没有任何错误,仅获取和发布信息。FTPClient将显示以下日志: 应用程序[web.1]:220 FTP服务器就绪无法使用apache client for Java从heroku连接到FTP服务器。503错误登录不正确,java,apache,heroku,ftp,jetty,Java,Apache,Heroku,Ftp,Jetty,我正在编写一个将文件上传到FTP服务器的应用程序。为了连接FTP服务器,我使用了org.apache.commons.net.FTP中的FTPClient。当我在本地运行代码时,一切正常,但当尝试从Heroku dyno登录到ftp时出现问题。服务器日志中没有任何错误,仅获取和发布信息。FTPClient将显示以下日志: 应用程序[web.1]:220 FTP服务器就绪 应用程序[web.1]:通过XXX 应用程序[web.1]:用户XXX app[web.1]:XXX需要331密码 应用程序[
应用程序[web.1]:通过XXX
应用程序[web.1]:用户XXX
app[web.1]:XXX需要331密码
应用程序[web.1]:530登录不正确。
应用程序[web.1]:类型I
应用程序[web.1]:221再见。
应用程序[web.1]:退出
app[web.1]:530请使用用户登录并通过
应用程序[web.1]:200类型设置为I
应用程序[web.1]:端口172,17221246145,63
密码和登录都可以,因为它在本地工作。我以为它可能是在heroku上编码的,但我把它改成了utf-8,但错误仍然是一样的。我正在使用以下代码连接FTP
private FTPClient ftp;
public void connect(String host, String username, String password) throws IOException {
ftp = new FTPClient();
ftp.enterLocalPassiveMode();
ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
ftp.connect(host);
ftp.login(username,password);
ftp.setFileType(FTP.BINARY_FILE_TYPE);
}
应用程序部署在jetty服务器上
编辑我以前没有提到过,在这两种情况下(本地和heroku上),我都登录到同一个FTP服务器。
密码和登录名按正确顺序发送。我还尝试手动执行此操作,这意味着我调用了方法用户名和密码,而不是登录,因此我确信orded是正确的似乎您在发送
用户
之前发送了通过
,而不是像我预期的那样。这可能适用于您的本地FTP服务器,但不适用于dyno尝试连接的任何FTP服务器。在这两种情况下(本地和heroku上),我都登录到同一个FTP服务器。密码和登录名按正确顺序发送。我还尝试手动操作,这意味着我调用了方法username和password,而不是login,所以我确信orded是正确的