2016-10-06 9 views
0

레거시 현대화 프로그램 VSAM/Mainframe을 JAVA로 변환하고 있습니다. 레거시 시스템의 모듈 중 하나가 파일을 생성하고 파일을 Microsoft Windows 서버에 FTP로 전송합니다. 파일에는 특수 기호가 포함되어 있습니다.] † ||!> μ.FTP 특수 문자 MF 대 Java

그러나 우리가 Apache Commons FTP 클라이언트를 통해 Java에서 동일한 기능을 수행 할 때 특수 문자는 그대로 유지됩니다] [! 번역이 없습니다. 가까운 미래에 다운 스트림 모듈이 업그레이드되지 않으므로 그대로 번역을 유지해야합니다.

누구나 Java Side에서이 문제를 직면했습니다. 메인 프레임이 FTP 중에 달성 할 수있는 변환을 할 수 있습니까?

ftp = new FTPClient(); 
ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out))); 
int reply; 
ftp.connect(host); 
reply = ftp.getReplyCode(); 
if (!FTPReply.isPositiveCompletion(reply)) { 
    ftp.disconnect(); 
    throw new Exception("Exception in connecting to FTP Server"); 
} 
ftp.login(user, pwd); 
ftp.site("SBD=(IBM-1140,ISO8859-1)") //not working ftp says not recognised 

는 사이트 코드 (networkpage, characterpage)는 recognized.The SBD는 ZOS 사이트 명령하지 말한다을 실행하는 순간, 사람이 해당 자바 FTP 클라이언트를 알고있다.

+0

에 FTP 문? IBM Knowledgecentre에서 이에 대한 참조를 찾을 수 없습니다. –

+0

@BillWoodger VSAM에 대한 나의 제한된 지식에 대한 사과는 실제로 그 단계 EXEC = FTP –

+0

오래된 IBM 메인 프레임 사용자인데 문제는 EBCDIC에서 ASCII 로의 변환입니다. 자바는 유니 코드를 사용합니다. 유니 코드는 이전 시스템보다 매핑이 ​​뛰어납니다. 번역을 명시 적으로해야합니다. 그러나 코드를 게시하지 않아서 실제로 도움이되지 않습니다. –

답변

0

비슷한 문제가 있습니다. 그래서 대신 ftp.site 제가

사용
ftp.sendCommand("site sbdataconn=AAAA.BBBB.CCC"); 

AAAA.BBBB.CCC는 변환 참조 함유 FB, LRECL 256과 함께 메인 프레임 데이터 세트 인 사용.

변경이 JBFTP 무엇

ftp.sendCommand("site sbdataconn=(IBM-1140,ISO8859-1)"); 
+0

그게 효과가 좋았어. 그러나 귀하의 지시에 따라 나는 ftp.sendCommand ("site sbdataconn = (IBM-1140, ISO8859-1)"); 하지만 여전히 500 'SITE'를 제공합니다. 명령을 이해할 수 없습니다. 그래서 제 경우에는 효과가 없습니다. –

+0

"ftp.site ("filetype = seq ");" sbdataconn 명령을 보내기 전에. – Dinesh