【问题标题】:Error in JDBC-Teradata ConnectivityJDBC-Teradata 连接错误
【发布时间】:2014-04-08 19:39:19
【问题描述】:

我已尝试通过 JDBC 连接到 teredata DB。我正在使用 jars 'terajdbc4.jar' 和 'tdgssconfig.jar',但我得到了 ClassNotFoundExceptionNoClassDefFoundError 的东西 com.ncr.teradata.jtdgss.TdgssManager 没有找到。

请帮助我找到解决方案。我提供了我的代码 sn-p 后跟错误日志。 用户名和密码正确,因为使用该 ID 通过 UNIX 连接到 teradata DB。

public class HelloTeradataJDBC {


  public static void main(String[] args) throws Exception {

    String url="jdbc:teradata://10.10.***.**/DBS_PORT= 1025/DATABASE= ******/TMODE=ANSI,CHARSET=UTF8";

    try{
    Class.forName("com.ncr.teradata.TeraDriver");
    Connection conn=DriverManager.getConnection(url, "*****", "******");
    //Connection conn=DriverManager.getConnection(connurl, "javauser1", "password1");

    String query="select * from xi.san_emp";


    PreparedStatement stmt=conn.prepareStatement(query);
    ResultSet rs=stmt.executeQuery();
    while(rs.next()) {
        String col1=rs.getString(1);
        System.out.println("col1="+col1);
    }
    }catch(ClassNotFoundException e){
        e.printStackTrace();
    }
  }
}

错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/ncr/teradata/jtdgss/TdgssManager
    at com.ncr.teradata.TeraEncrypt.getTDgssVersion(TeraEncrypt.java:548)
    at com.ncr.teradata.jdbc_4.parcel.ConfigFeatureTdgss.<init>(ConfigFeatureTdgss.java:44)
    at com.ncr.teradata.jdbc_4.statemachine.InitDBConfigState.action(InitDBConfigState.java:68)
    at com.ncr.teradata.jdbc_4.statemachine.LogonController.run(LogonController.java:50)
    at com.ncr.teradata.jdbc_4.TDSession.<init>(TDSession.java:150)
    at com.ncr.teradata.jdbc_3.ifjdbc_4.TeraLocalConnection.<init>(TeraLocalConnection.java:89)
    at com.ncr.teradata.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:50)
    at com.ncr.teradata.TeraDriver.connect(TeraDriver.java:214)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at HelloTeradataJDBC.main(HelloTeradataJDBC.java:15)
Caused by: java.lang.ClassNotFoundException: com.ncr.teradata.jtdgss.TdgssManager
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 11 more

【问题讨论】:

    标签: jakarta-ee jdbc teradata


    【解决方案1】:

    这会奏效。驱动程序名称是 com.teradata.jdbc.TeraDriver 而不是我认为过时的 com.ncr.teradata.TeraDriver。

    Class.forName("com.teradata.jdbc.TeraDriver");
    conn = DriverManager.getConnection("jdbc:teradata://"+servername+"/databasename="+this.username+",user="+this.username+",password="+this.password);
    

    【讨论】:

    • 在我使用 terajdbc4.jar 的 jar 中没有指定为 'com.teradata.jdbc.TeraDriver' 的包和类。请发布截至目前日期的罐子的链接。缺少的类是“com.ncr.teradata.jtdgss.TdgssManager”。
    猜你喜欢
    • 2018-01-09
    • 2017-11-20
    • 2014-01-26
    • 2019-06-02
    • 2017-08-20
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多