Сбой SFTP без исключения таких файлов при выполнении связи с Mac на Mac с использованием драйвера hxtt - PullRequest
0 голосов
/ 21 сентября 2019

Я пытаюсь установить связь между одним Mac и другим Mac по протоколу SFTP с использованием драйвера hxtt

Подробности см. Ниже:

Порт открыт: 22 * ​​1006 *

FileName: Test.csv

Файл, размещенный в папке: / Users / surajkudale / Documents / TestSharing
URL: jdbc: csv: / sftp: // myusername: mypassword@192.168.0.102/TestSharing/?_CSV_Separator =,; _ CSV_Header = true Запрос: выберите * из теста;

Использованные файлы JAR:

  • Text_JDBC40.jar
  • jcifs.jar
  • jsch-0.1.50.jar

Исключение:

java.sql.SQLException: Failed to load table Test:2: No such file
       at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2833)
       at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:2185)
       at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:1295)
       at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:1267)

Пожалуйста, найдите программу ниже:

import java.sql.*;

import java.util.Properties;

import java.util.Date;

public class HXTTConnectionTest {

    public static void main(String argv[]) {

        try {
            Class.forName("com.hxtt.sql.text.TextDriver").newInstance();

            String url = "jdbc:csv:/sftp://mac2user:mac2password@192.168.0.102/TestSharing?_CSV_Separator=,";

            String sql = "select * from Test";

            Connection con = DriverManager.getConnection(url, "", "");

            Statement stmt = con.createStatement();

            ResultSet rs = stmt.executeQuery(sql);

            ResultSetMetaData resultSetMetaData = rs.getMetaData();

            int iNumCols = resultSetMetaData.getColumnCount();

            for (int i = 1; i <= iNumCols; i++) {

                System.out.println(resultSetMetaData.getColumnLabel(i)

                        + " " +

                        resultSetMetaData.getColumnTypeName(i));

            }

            rs.close();

            stmt.close();

            con.close();

        }

        catch (SQLException sqle) {

            do {
                sqle.printStackTrace();

                sqle.printStackTrace();

            }

            while ((sqle = sqle.getNextException()) != null);

        }

        catch (Exception e) {

            System.out.println(e.getMessage());

            e.printStackTrace();

        }

    }

}

Ожидается, что он должен возвращать столбцы вместо исключения

Не могли бы вы помочь по этому вопросу.

...