2012-04-30 3 views
0

아파치 공유 라이브러리를 사용하여 ftp 서버에 파일을 저장하려고합니다. commons-net-3.0.1.jar을 사용하고 있습니다. 내가 서버에 파일, 전화아파치를 사용하여 ftp 서버에 파일 저장하기 Commons does not work

StoreFile() 항상 false

수익을 밀어하려고 할 때 어느 문제입니다. 어떤 예외도 발생시키지 않습니다. 아무것도, 조용히 거짓으로 대답하지 마십시오. 내가 수동으로 파일을 밀어 넣으려고하면 (즉, ftp 명령을 사용하여 ftp 서버에 연결하고 put 명령을 사용하여 파일을 저장하는 것을 의미하는) 리눅스 시스템에서 일반적인 "ftp"클라이언트를 사용하면 파일을 서버에 넣습니다.

어떻게 디버깅할지 모릅니다. 문제와 해결책을 어떻게 알 수 있는지 알려주십시오.

서버 로그를 검사했는데 Java를 통해 게시하려고 할 때 로그에 425 응답 코드가 연결을 설정하지 못했다고 표시됩니다. 하지만 수동으로 사용하면 226 응답을 보여줍니다.

+0

둘 모두에 대해 동일한 사용자 이름과 암호를 사용하고 있는지 확인하거나 Java 응용 프로그램이 필요한 권한을 가진 자격 증명을 사용하는지 확인하십시오. 사용중인 코드를 게시하면 도움이됩니다. – npinti

+0

'commons-net'은 opensource입니다. 코드로 디버깅을 시도 할 수 있습니다. –

+0

@npinti : - 자격 증명은 동일합니다. 서버 로그에 "Login successfull"이라고 표시됩니다. – Thebestshoot

답변

0

참고 : FTP는 코드가있는 서버로 /에서 데이터를 업로드/다운로드하기위한 신뢰할 수있는 프로토콜이 아닙니다. 신뢰할 수있는 솔루션이 필요한 경우 FTP는 사용자를위한 것이 아닙니다. 대신 ssh를 사용해보십시오.

질문에 답변하려면 SocketClient (FTP 확장)에 ProtocolCommandListener을 추가하십시오. 그런 다음 최소한 메시지를 인쇄 할 수 있습니다. ProtocolCommandListener()protocolReplyReceived()

+0

나는 이것을 잘 해내려고 노력했다. 그러나 날씨를 디버깅하기위한 일종의 다른 도구를 가지고 있는가? 데이터가 바르게 보내지는지, 명령에 관한 것인가? productioon 환경에서이 문제를 어떻게 해결할 수 있을까? , 만약 내가이 코드 havent? 거기에 일을하는 방법이있다 – Thebestshoot

+0

로깅 프레임 워크를 앱에 추가하십시오. 이러한 파일은 앱과 함께 배포 할 수있는 파일로 구성 할 수 있습니다. 그렇게하면 필요에 따라 로깅을 활성화/비활성화 할 수 있습니다. 즉 : FTP는 프로덕션 용도로 적합한 프로토콜이 아닙니다. 자동 오류 복구가 아닌 사람을 위해 설계되었으므로 동일한 문제를 반복해서 해결하기 위해 매주 두 시간을 보내야합니다. –