我正在尝试使用FTP将文件上传到大型机服务器。我的代码在
之下FTPClient client = new FTPClient();
InputStream in = null;
FileInputStream fis = null;
try {
client.connect("10.10.23.23");
client.login("user1", "pass123");
client.setFileType(FTPClient.BINARY_FILE_TYPE);
int reply ;
reply = client.getReplyCode();
System.out.println("Reply Code:"+reply);
if(FTPReply.isPositiveCompletion(reply)){
System.out.println("Positive reply");
String filename ="D:\\FILE.txt";
in = new FileInputStream(filename);
client.storeFile("FILE.TXT", in);
client.logout();
fis.close();
} else {
System.out.println("Negative reply");
}
} catch(final Throwable t){
t.printStackTrace();
}
代码在client.storeFile("FILE.TXT", in);
中被触及
我无法调试。请提出方法/解决方案。
答案 0 :(得分:1)
首先,Lukas说fis是空的,但我还有其他一些问题。什么是FTPClient?它不是sun.net.ftp.FtpClient,因为该类没有store()
方法。其他需要考虑的事情是登录大型机,在我工作的地方,你不仅可以在没有首次登录的情况下从大型机上获取文件。可以考虑更多的事情,但让我们从那里开始。
答案 1 :(得分:1)
在上传文件之前,您似乎没有更改到特定目录。有两种方法可以更改大型机上的目录。如果你需要上传到PDS,你可以在windows ftp客户端执行如下命令。
cd USERID.DATASET.PREFIX
如果您需要将文件上传到USS子系统,您将执行如下命令。
cd '/direone/dirtwo'
答案 2 :(得分:1)
您是否检查过user1是否具有ftp的访问权限?可以在非常精细的级别上授予这些权限,以便您可以列出文件并提交作业,但不能放置文件 它在你的SEND之后死亡的事实似乎可能是一个很好的候选人。我会打电话给你的RACF / ACF2 / Whatever-security-product人,并问他们。
答案 3 :(得分:0)