在spring中添加外部jar - java

时间:2014-04-02 12:16:55

标签: java eclipse spring spring-mvc hadoop

我是Spring的新手,我正在尝试一个简单的Web动态应用程序从数据库获取数据并使用impala在前端显示。 这是连接器类:

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构建路径中添加了HIve-connector jar。如果我从java类的main方法调用它,则getConnection()有效,但如果我从jsp页面调用此方法,则getConnection()会给hive驱动程序找不到异常。 :

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

2 个答案:

答案 0 :(得分:1)

您的webapplication存档中没有hive-jdbc.jar。即战争档案。打包应用程序时会丢失它。您应该将它放在WEB-INF/lib目录中。还请确保您还将其添加到eclipse项目的部署程序集中。

它在您运行主类时起作用,因为在构建路径中配置了hive-jdbc.jar。它与webapplication的观点不同。

注意:除非您要处理它,否则不应抛出ClassNotFoundException。您应该在运行时在类路径中将所有必需的jar放在应用程序包中。

答案 1 :(得分:1)

您使用的是错误的Driver-Class。 请改用org.apache.hadoop.hive.jdbc.HiveDriver