今天试着直接用jdbc连一下Teradata,报了下面的错:

   
   
   
   
  1. GSSException: Failure unspecified at GSS-API level (Mechanism level: UserFile parameter null)  
  2.  at com.teradata.tdgss.jtdgss.TdgssParseXml.(DashoA1*..)  
  3.  at com.teradata.tdgss.jtdgss.TdgssConfigApi.(DashoA1*..)  
  4.  at com.teradata.tdgss.jtdgss.TdgssManager.(DashoA1*..)  
  5.  at com.teradata.tdgss.jtdgss.TdgssManager.getInstance(DashoA1*..)  
  6.  at com.teradata.jdbc.jdbc.GenericTeraEncrypt.getGSSM(GenericTeraEncrypt.java:622)  
  7.  at com.teradata.jdbc.jdbc.GenericTeraEncrypt.getConfig(GenericTeraEncrypt.java:640)  
  8.  at com.teradata.jdbc.jdbc.GenericTeraEncrypt.getUserNameForOid(GenericTeraEncrypt.java:733)  
  9.  at com.teradata.jdbc.AuthMechanism.(AuthMechanism.java:50)  
  10.  at com.teradata.jdbc.jdbc.GenericInitDBConfigState.action(GenericInitDBConfigState.java:104)  
  11.  at com.teradata.jdbc.jdbc.GenericLogonController.run(GenericLogonController.java:49)  
  12.  at com.teradata.jdbc.jdbc_4.TDSession.(TDSession.java:201)  
  13.  at com.teradata.jdbc.jdbc_3.ifjdbc_4.TeraLocalConnection.(TeraLocalConnection.java:99)  
  14.  at com.teradata.jdbc.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:54)  
  15.  at com.teradata.jdbc.TeraDriver.doConnect(TeraDriver.java:218)  
  16.  at com.teradata.jdbc.TeraDriver.connect(TeraDriver.java:151)  
  17.  at java.sql.DriverManager.getConnection(DriverManager.java:512)  
  18.  at java.sql.DriverManager.getConnection(DriverManager.java:171)  
  19.  at myservlet.Action.main(Action.java:48)  

查了一会,发现原来Teradata需要3个包,而我只给了1个包。

terajdbc4.jar

tdgssjava.jar

tdgssconfig.jar

说实话,我觉得Teradata将jdbc所需设计成3个包也许是个缺陷吧,对初学者不友好噢。