FileNotFoundException при вызове put (String local, String remote) в последнем обновлении - PullRequest
0 голосов
/ 08 апреля 2020

Я получаю FileNotFound Exception в методе put (String local, String remote) при использовании приведенной ниже зависимости в файле pom. Я следовал https://www.jadaptive.com/app/manpage/en/article/1564743 в качестве документа установки

        <dependency>
            <groupId>com.sshtools</groupId>
            <artifactId>maverick-synergy-client</artifactId>
            <version>3.0.0-SNAPSHOT</version>
        </dependency>

и фрагмент кода, как показано ниже

ssh.runTask(new SftpClientTask(ssh) {
            @Override
            protected void doSftp() {
                try {
                    log.info("File to Copy:{}", fileToCopy.getAbsolutePath());
                    put(fileToCopy.getAbsolutePath(), remoteDir);
                    log.info("SFTP File put operation done successfully");
                    isSftpSuccessful = Boolean.TRUE;
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                    message = "Seems invalid file is being uploaded through SFTP";
                    isSftpSuccessful = Boolean.FALSE;
                } catch (SftpStatusException e) {
                    e.printStackTrace();
                    if (e.getStatus() == SftpStatusException.SSH_FX_PERMISSION_DENIED) {
                        message = "Failed to create file in remote directory as the configured user don't have permission to create one";
                    }
                    isSftpSuccessful = Boolean.FALSE;
                } catch (SshException e) {
                    e.printStackTrace();
                    isSftpSuccessful = Boolean.FALSE;
                } catch (TransferCancelledException e) {
                    e.printStackTrace();
                    isSftpSuccessful = Boolean.FALSE;
                } catch (Exception e) {
                    e.printStackTrace();
                    isSftpSuccessful = Boolean.FALSE;
                }
            }
        });

Источник приведенного выше кода: https://www.jadaptive.com/app/manpage/en/article/199500

Это работало нормально 1 неделю назад, когда у меня был невменяемый synergy-client-3.0.0-20200225.155328-75.jar в моем хранилище .m2. После того, как я вчера снова собрал свой код, я получил несколько новых зависимостей, загруженных в мой репозиторий .m2 и maverick-synergy-client-3.0.0-20200405.143821-96.jar. С тех пор я получаю исключение ниже

java.io.FileNotFoundException: C:\Users\PSEZWAR\C:\Users\PSEZWAR\WelcomeSFTP.txt (The filename, directory name, or volume label syntax is incorrect)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at com.sshtools.common.files.direct.AbstractDirectFile.getInputStream(AbstractDirectFile.java:109)
    at com.sshtools.client.sftp.SftpClient.put(SftpClient.java:1778)
    at com.sshtools.client.sftp.SftpClient.put(SftpClient.java:1892)
    at com.sshtools.client.sftp.SftpClientTask.put(SftpClientTask.java:976)
    at com.xylem.owareportservice.util.SFTPUtil$1.doSftp(SFTPUtil.java:129)
    at com.sshtools.client.sftp.SftpClientTask.doTask(SftpClientTask.java:55)
    at com.sshtools.common.ssh.ConnectionAwareTask.run(ConnectionAwareTask.java:45)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Значением fileToCopy является C: \ Users \ PSEZWAR \ WelcomeSFTP.txt, определенный в main. У меня есть локальный файл по адресу C: \ Users \ PSEZWAR \ WelcomeSFTP.txt, но код библиотеки добавляет C: \ Users \ PSEZWAR \ в мое местоположение файла и делает его C: \ Users \ PSEZWAR \ C: \ Users \ PSEZWAR \ WelcomeSFTP.txt, что приводит к исключению FileNotFoundException. Кроме того, если у меня есть локальный файл в /tmp/WelcomeSFTP.txt, он добавляется в каталог / root / в папку, приводящую к исключению FileNotFoundException. Пожалуйста, помогите мне решить проблему. Я также поднял проблему в github https://github.com/sshtools/maverick-synergy/issues

...