2015-01-19 3 views
1

Apache Mina FTPServer를 사용하고 있습니다. documentation에서 언급했듯이 DefaultFtplet 클래스를 확장 중입니다. onConnect 등의 문서에 언급 된 일부 이벤트에 인쇄물 (SOP)을 넣을 예정이며 모든 것이 잘 작동합니다.Apache FTPServer - 'DELE'와 같은 명령 제한

는 지금, 나는 문서에 따라 나는 onDeleteStart 방법을 무시했다, 그래서 가의 DELE 명령을 제한 할 수 있지만, 클라이언트는 내 메시지 중 하나없이 중단 점점 분리된다.

@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()에서 메시지를 받고, 그리고 매달려 나중에 당신은 대신 new FtpReply()을 만드는 DefaultFtpReply을 사용할 수 있습니다

답변

0

을 분리하지 않습니다;

FtpReply reply = new DefaultFtpReply(FtpReply.REPLY_450_REQUESTED_FILE_ACTION_NOT_TAKEN, 
"Deletion not supported"); 
session.write(reply);