Как преобразовать FTP из Spring MVC в Spring Boot / Thymeleaf? - PullRequest
1 голос
/ 06 мая 2020

Итак, я работал над тем, чтобы взять logi c из старого веб-приложения и сделать из него новое приложение Spring Boot. Я застрял в связи с подключением ftp и позвонил. Поскольку у меня нет большого опыта в этом, мне любопытно, есть ли лучший / более современный способ справиться с большей частью этого ftp-материала с помощью Spring Boot / Thymeleaf и способов go вперед и его настройки. Любой совет / руководство было бы fantasti c.

Это старый код, который я хотел бы немного модернизировать.

String serverName = getFtpServer();

// Connect to the server
try {
    ftp.connect(serverName);
    ftp.enterLocalPassiveMode();
    String replyText = ftp.getReplyString();
    System.out.println(replyText);
} catch (Exception e) {
    e.printStackTrace();
    return false;
}

// Login to the server
try {
    ftp.login(userName, password);
    String replyText = ftp.getReplyString();
    System.out.println(replyText);
} catch (Exception e) {
    e.printStackTrace();
    return false;
}

// Tell server that the file will have JCL records
try {
    ftp.site("filetype=jes");
    String replyText = ftp.getReplyString();
    System.out.println(replyText);
} catch (Exception e) {
    e.printStackTrace();
    return false;
}

// Submit and run the JCL
try {
    System.out.println("TRYING TO START MAINFRAME JCL");
    submitJcl(filename, serverName);

    String replyText = ftp.getReplyString();
    System.out.println(replyText);
} catch (Exception e) {
    String replyText = ftp.getReplyString();
    System.out.println(replyText);
    e.printStackTrace();
    return false;
}

// Quit the server
try {
    ftp.quit();
} catch (Exception e) {
    e.printStackTrace();
}

Сохранение файла

private String submitJcl(String remoteFile, String serverName) throws IOException {
    String filePath = getFilePath();
    String result = "";
    String fileName = filePath + remoteFile;
    System.out.println("filePath = " + fileName);
    FileInputStream inputStream = new FileInputStream(fileName);
    ftp.storeFile(serverName, inputStream);

    return result;
}

1 Ответ

0 голосов
/ 13 мая 2020

Для этого я понял, что могут быть лучшие способы изменить его на более новый формат ftp для Spring Boot, но это все еще полностью работает.

Изменения, которые я внес в него, несмотря ни на что:

  • Объединение блоков try / catch в один.
  • Вставил ftp-материал в его собственную функцию, а затем просто вызвал его внутри блока try / catch
  • Все файлы sys.out заменены на info.debugs.
  • Изменен способ получения filePath на более относительный путь к файлу, хранящемуся в системе, а не к файлам пользователя.
...