FTPを使用してメインフレームサーバーにファイルをアップロードしようとしています。私のコードは、コードが、私は、デバッグすることができませんclient.storeFile("FILE.TXT", in);
に打たれますJava、Apache Common Netを使用してメインフレームにファイルを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();
}
を下回っています。方法や解決策を提案してください。
あなたはfis.close()をやっています。初期化されていないオブジェクト上にあり、マシン上でNPEが発生します。 – Lukasz
おそらくstoreFileの戻り値をチェックして閉じてください。 – extraneon
どのような種類のメインフレームですか? EBCDICを使用していますか? 「直接サポートされている唯一のファイルタイプはFTP.ASCII_FILE_TYPEとFTP.BINARY_FILE_TYPEです。少なくとも4つの異なるEBCDICエンコーディングがあるため、EBCDICを直接サポートしないことを選択しました。独自のフィルタInputStreamsとOutputStreamを作成し、FTPClientメソッドによって返されるストリームまたは必要なストリームの周りにラップする必要があります。 http://commons.apache.org/net/api/org/apache/commons/net/ftp/FTPClient.html – Lukasz