Передача файла на мэйнфрейм с использованием Java, Apache Common Net - PullRequest
1 голос
/ 31 декабря 2010

Я пытаюсь загрузить файл на мэйнфрейм-сервер, используя 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();  
}

Код получен в client.storeFile("FILE.TXT", in); Я не могу отладить.Пожалуйста, предложите пути / решения.

Ответы [ 4 ]

1 голос
/ 31 декабря 2010

Вы не переходите в конкретный каталог перед загрузкой файла. Существует два способа изменения каталогов на мейнфрейме. Если вам нужно загрузить на PDS, вы должны выполнить команду, подобную следующей, с помощью в клиенте ftp Windows.

cd USERID.DATASET.PREFIX

Если вам нужно загрузить файл в подсистему USS, вы должны выполнить команду, подобную следующей.

cd '/direone/dirtwo'
1 голос
/ 05 января 2011

Вы проверили, что user1 имеет права доступа к ftp? Можно предоставить их на очень детальном уровне, чтобы вы могли перечислять файлы и отправлять задания, но не помещать файлы.
Тот факт, что он умирает сразу после вашей ОТПРАВКИ, может показаться хорошим кандидатом. Я бы позвонил вашему сотруднику RACF / ACF2 / независимо от вашего продукта безопасности и спросил бы их.

1 голос
/ 31 декабря 2010

Сначала Лукаш сказал, что это ноль, но у меня есть куча других вопросов. Что такое FTPClient? Это не sun.net.ftp.FtpClient, так как у этого класса нет метода store(). Другие вещи, которые следует учитывать, это вход в мэйнфрейм, где я работаю, вы не можете просто получить файлы с мэйнфрейма без первого входа в систему. Можно рассмотреть и другие вещи, но давайте начнем с этого.

0 голосов
/ 18 марта 2015
  1. сначала удалите расширение файла из имени файла
  2. заключить имя файла после обрезки в одинарные кавычки
  3. теперь поместите вышеуказанную строку в качестве первого параметра метода storeFile ()
...