2010-12-31 3 views
1

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(); 
} 

이하입니다. 방법/해결책을 제안하십시오.

+0

fis.close();하고 있습니다. on 초기화되지 않은 개체 및 내 컴퓨터에서 NPE가 발생합니다. – Lukasz

+0

storeFile의 반환 값을 확인하고 닫아야합니다. – extraneon

+0

어떤 종류의 메인 프레임입니까? EBCDIC을 사용합니까? "직접 지원되는 파일 형식은 FTP.ASCII_FILE_TYPE 및 FTP.BINARY_FILE_TYPE뿐입니다 .4 가지 이상의 EBCDIC 인코딩이 있으므로, 우리는 EBCDIC에 대한 직접 지원을 제공하지 않기로 선택했습니다 .EBCDIC 및 기타 지원되지 않는 파일 유형을 전송하려면 자신의 필터 인 InputStreams 및 OutputStreams를 생성하고 FTPClient 메소드에서 반환되거나 필요로하는 스트림을 감싸야합니다. " http://commons.apache.org/net/api/org/apache/commons/net/ftp/FTPClient.html – Lukasz

답변

1

처음에는 루카스가 fis가 null이라고 말한 것이 있지만 다른 질문이 많이 있습니다. FTPClient 란 무엇입니까? 해당 클래스에는 store() 메소드가 없으므로 sun.net.ftp.FtpClient가 아닙니다. 고려해야 할 다른 사항은 메인 프레임에 로그인하는 것입니다. 여기서 작업을 시작하면 처음 로그인하지 않아도 메인 프레임에서 파일을 가져올 수 없습니다. 고려해야 할 사항이 더 많지만 시작할 수는 있습니다.

+0

FTPclient는 아파치 공유 클라이언트입니다. [link] (http://commons.apache.org/ net/apidocs/org/apache/commons/net/ftp/FTPClient.html) –

1

파일을 업로드하기 전에 특정 디렉토리로 변경하지 않는 것 같습니다. 메인 프레임에서 디렉토리를 변경하는 방법에는 두 가지가 있습니다. PDS에 업로드해야하는 경우 windows ftp 클라이언트에서 다음과 같은 명령을 실행합니다.

cd USERID.DATASET.PREFIX 

파일을 USS 하위 시스템에 업로드해야하는 경우 다음과 같은 명령을 실행합니다.

cd '/direone/dirtwo' 
1

user1에 ftp에 대한 액세스 권한이 있는지 확인 했습니까? 파일을 나열하고 작업을 제출할 수 있지만 파일을 넣을 수 없도록 매우 세분화 된 수준에서 부여 할 수 있습니다.
귀하의 SEND 직후에 사망한다는 사실은 좋은 후보가 될 수 있습니다. RACF/ACF2/뭐든간에 보안 제품 담당자에게 전화해서 물어볼 것입니다.

0
  1. 첫 번째() 메소드
  2. 지금 storeFile의 첫 번째 매개 변수로 위의 문자열을 넣어 작은 따옴표 내에서 트리밍 한 후 결과 파일 이름을 둘러싸 파일 이름에서 파일 확장자를 제거
관련 문제