2014-04-02 64 views
0

我是新来的春天,我正在尝试一个简单的网络动态应用程序从数据库获取数据并在前端显示使用黑斑羚。 这是连接器类:在春天添加外部罐子 - java

private static final String IMPALAD_HOST = "host"; 
private static final String IMPALAD_JDBC_PORT = "port"; 

private static final String CONNECTION_URL = "jdbc:hive2://" + IMPALAD_HOST + ':' + IMPALAD_JDBC_PORT + "/;auth=noSasl"; 
private static final String JDBC_DRIVER_NAME = "org.apache.hive.jdbc.HiveDriver"; 

public Connection getConnection() throws ClassNotFoundException{ 
    Connection con = null; 
    try { 
     Class.forName(JDBC_DRIVER_NAME); 
     con = DriverManager.getConnection(CONNECTION_URL,"",""); 
    }catch (SQLException e) { 
     e.printStackTrace(); 
    } 
    return con; 
}` 

蜂房连接器罐子在Eclipse的Java构建路径添加。 getConnection()的作品,如果我从一个Java类的主要方法调用它,但getConnection()给蜂房驱动程序没有发现异常,如果我从jsp页面调用此方法。 :

java.lang.ClassNotFoundException: org.apache.hive.jdbc.HiveDriver 
+0

你使用的是maven吗? –

+0

不,我尝试了简单的j2ee项目有相同的概率。 – Naveen

回答

1

您的web应用程序归档中没有hive-jdbc.jar。即战争文件。包装应用程序时错过了。您应该将它放在WEB-INF/lib目录中。另请确保您也将其添加到eclipse项目的部署程序集中。

它在您运行主类时起作用,因为在构建路径中配置了hive-jdbc.jar。它与Web应用程序的角度不同。

注意:ClassNotFoundException不应该抛出,除非你要处理它。你应该在classpath中运行时在应用程序包中包含所有必需的jar。

+0

感谢此工作。 – Naveen

+0

@Naveen很高兴,它帮助。请接受让别人知道这个问题已经结束的答案。 – Keerthivasan

1

您正在使用错误的驱动程序类。 改为使用org.apache.hadoop.hive.jdbc.HiveDriver

+1

这是为蜂巢,我连接到使用配置单元节俭服务器的黑斑羚,问题解决了,我不得不添加jar在我们的内容/ lib文件夹 – Naveen