Я пытаюсь реализовать базовый c FTP-клиент, используя Java Spring Boot, и я столкнулся с этой проблемой, и я хотел спросить вас, есть ли у вас какой-либо опыт работы с ним.
Я включил сервер Tomcat и перевел компьютер в спящий режим, примерно через 3 часа я разбудил P C, а сервер все еще работал, поэтому я попытался вызвать конечную точку (эта конечная точка должна проверьте соединение и затем загрузите файл на FTP-сервер), но я получаю следующее сообщение об исключении:
Сброс соединения по пиру: ошибка записи в сокет
Как вы думаете, это было вызвано тем, что P C спал в течение длительного времени, и он потерял связь, или это должно быть что-то еще? Если да, как мне справиться с этим делом?
Когда я перезагружаю сервер, файл загружается нормально.
Вот мой класс конечной точки:
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) {
try {
FTPClient ftpClient = Connection.getFtpClient();
if (!Connection.isConnected()) { Connection.connect(); }
ftpClient.changeWorkingDirectory("/AiDisk_a1/usb/");
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
InputStream inputStream = new BufferedInputStream(file.getInputStream());
ftpClient.storeFile(file.getOriginalFilename(), inputStream);
return "Status: " + ftpClient.getReplyString();
}
catch (IOException ex) {
System.out.println("Endpoint exception: " + ex.getMessage());
return "Endpoint exception: " + ex.getMessage();
}
}
Спасибо за ваши советы.