FTPClient client = new FTPClient();
try
{
client.connect(currentServerHostname);
System.out.println("Connection is successful");
System.out.println("Reply String: " + client.getReplyString());
client.login(currentServerUser, currentServerPass);
System.out.println("login ok");
System.out.println("Reply String: " + client.getReplyString());
}
catch (Exception e) {
System.out.println("No connection was established");
}
此代码在行client.login()方法中显示530 Pass命令失败等错误。
答案 0 :(得分:1)
也许您尝试使用具有RACF帐户的用户登录,但该用户(可能)没有在OMVS段中定义UID。
看看这是否有帮助:
<强>问题(摘要)强>
FTP客户端用户尝试登录z / OS FTP服务器。输入正确的密码进行用户验证后,将收到以下服务器回复:
530 PASS command failed
诊断问题
为FTP服务器指定了ACC和FLO DEBUG选项(请参阅&#34; FTP服务器问题和#34的文档;在Technote MustGather中:收集z / OS Communications Server的FTP故障排除数据以获取说明在启动FTP服务器跟踪时),FTP服务器跟踪中包含以下消息:
RA0786 pass: use __passwd() to verify the user
RA0809 pass: __passwd() failed - EDC5163I SAF/RACF extract error. (errno2=0x090C1C00)
RA0888 pass: The username access has been revoked
SR2910 reply: entered
SR2947 reply: --> 530 PASS command failed
在v1r12及更高版本中,消息显示为:
RA0862 pass: use __passwd() to verify the user
RA1100 pass: getpwnam() failed - EDC5163I SAF/RACF extract error. (errno2=0B490808)
SR3360 reply: entered
SR3397 reply: --> 530 PASS command failed
考虑将ACCESSERRORMSGS TRUE语句添加到服务器使用的FTP.DATA输入中(通常通过启动过程中的SYSFTPD DD引用)。这将导致服务器向最终用户提供有关任何登录失败性质的更多信息(除了&#39; 530 PASS命令失败&#39;)。一些网站&#39;安全策略限制在这些情况下提供更多信息,这是ACCESSERRORMSGS默认为FALSE。
解决问题
登录FTP服务器的每个用户必须在用户的OMVS段中定义UID。在这种情况下,登录的用户没有在OMVS段中定义的UID,导致PASS命令失败。要解决此问题,请在用户的OMVS段中定义UID。