我是 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;
}`
HIVe-connector jar 添加到eclipse 的java 构建路径中。如果我从 java 类的主要方法调用它,getConnection() 会起作用,但如果我从 jsp 页面调用此方法,getConnection() 会给出未找到配置单元驱动程序的异常。 :
java.lang.ClassNotFoundException: org.apache.hive.jdbc.HiveDriver
最佳答案
您的 Web 应用程序存档中没有 hive-jdbc.jar
。即 war 文件。打包应用程序时遗漏了它。您应该将它放在 WEB-INF/lib
目录中。还请确保您也将它添加到 eclipse 项目的部署程序集中。
它在您运行主类时起作用,因为 hive-jdbc.jar
是在构建路径中配置的。它不同于 webapplication 的角度。
注意:除非您要处理它,否则不应抛出 ClassNotFoundException
。在类路径中的运行时,您的应用程序包中应该包含所有必需的 jar。
关于java - 在 spring 中添加外部 jar - java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22811227/