2012-11-22 4 views
0

org.apache.commons.net.ftp.FTPClient를 사용하여 원격 FTP 서버에서 파일을 다운로드하는 Stateless Session Bean (JBOSS 컨테이너에 있음)이 있습니다. 그런 다음 파일을 로컬 System tmp 디렉토리 (java.io.tmpdir)에 임시 저장하고, 주로 Hibernate를 사용하여 데이터베이스에 추가하여 내용을 처리합니다.JBoss에 EJB3이있는 FTP 클라이언트

이제 EJB 스펙에서는 java.io.File, java.io.FileInputStream 등을 사용하지 말라고 알려줍니다. 기본적으로 "직접적인"파일 시스템 접근을 전혀하지 말라.

이제 작업을 어떻게해야합니까? 누구나 힌트, 링크, 예가 있습니까?

은 사전에 감사

mostart

+0

어쩌면 당신은 자신의 응용 프로그램/http 서버를 통해 다른 서버에 접속하여 데이터를 얻고 싶습니까? 그냥 말해. – SJuan76

+0

원격 서버는 제 통제하에 있지 않은 제 3 자 서버입니다. FTP 클라이언트 액세스 만 허용합니다. – mostart

답변

0

당신의 힌트를

덕분에 .... 응용 프로그램이 클러스터에 상주하는 경우 로컬로 저장된 파일에 각 클러스터 구성원이 액세스 할 수 없으므로 문서에서 java.io를 전혀 사용하지 않는 것이 좋습니다. 그것은 그러한 불일치를 피하는 가장 쉬운 방법입니다.

그러나 빈의 수명주기가 끝나기 전에 삭제할 수있는 임시 파일로 작업해야하는 경우 걱정없이 java.io를 사용할 수 있습니다. 요점은 나중에 앱에서 액세스하려는 항목을 로컬에 저장하지 않는다는 것입니다.

0

어떻게 들어오는 파일을 저장하기위한 자신의 로컬/원격 FTP 서버를 가진 어떻습니까? 그런 다음 FTPClient를 사용하고 파일 시스템에 직접 액세스하지 마십시오.

0

좋아, 파일 시스템에 일시적으로 저장하는 대신 다운로드 스트림에서 직접 작동하도록 모듈을 리팩터링 할 수 있음을 알았습니다. 당신은 당신이 당신의 응용 프로그램에서 나중에 사용할 것 데이터를 저장하기 위해 로컬 파일 시스템에 액세스하지 말아야

관련 문제