Apache Mina FTPServer を使用しています。ドキュメントに記載されているように、DefaultFtplet
クラスを拡張しています。などのドキュメントに記載されているいくつかのイベントにプリント (SOP) を入れていますonConnect
が、すべて正常に動作しています。
ここで、コマンドを制限しDELE
たいので、ドキュメントに従ってメソッドをオーバーライドしましたonDeleteStart
が、クライアントがハングし、メッセージなしで切断されます。
このようなシナリオに関するより具体的なドキュメントを見つけることができなかったため、次のコードは次のとおりです。
@Override
public FtpletResult onDeleteStart(FtpSession session, FtpRequest request) throws FtpException, IOException {
System.out.println("\n\n\nonDeleteStart\n\n\n");
FtpReply reply = new FtpReply() {
@Override
public String getMessage() {
return "Deletion not supported";
}
@Override
public int getCode() {
return FtpReply.REPLY_450_REQUESTED_FILE_ACTION_NOT_TAKEN;
}
};
session.write(reply); // Not sure if this is the right way!
return FtpletResult.SKIP;
}
ここで何が欠けているのか教えてください。それともこれが正しい方法ですか?
クライアント (ftp
コマンド ライン、およびWinSCP
) が からメッセージを取得せずgetMessage()
、ハングして後で切断する