Java-对等重置连接:套接字写入错误

时间:2020-04-23 17:31:08

标签: java spring spring-boot ftp

我正在尝试使用Java Spring Boot来实现基本的FTP客户端,但是遇到了这个问题,我想问问您是否有经验。

我让我的Tomcat服务器运行,并使计算机进入睡眠模式,大约3个小时后,我唤醒了PC并且服务器仍在运行,因此我尝试调用该端点(该端点应检查连接,然后上传文件到FTP服务器),但出现此异常消息:

对等方重置连接:套接字写入错误

您是否认为这是由于PC长时间睡眠而失去连接,还是其他原因?如果是这样,该如何处理?

当我重新启动服务器时,文件正常上传。

这是我的终结点课程:

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

感谢您的建议。

1 个答案:

答案 0 :(得分:1)

我认为您需要使用logout()disconnect()

logout() throws IOException

通过发送QUIT命令注销FTP服务器。

 } finally {
    ftp.logout();
    ftp.disconnect();
  }

在执行任何操作之前,必须首先使用connect连接到服务器,然后在与服务器完全完成交互之后才断开连接。 FTPClient