如何解决修复 'java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy' Maven
我目前正在尝试使用 hive-jdbc 连接到 Hive 数据库。我有一个 DataSource 对象,我使用的是 NamedParameterJdbcTemplate 对象。
DataSource 对象如下所示:
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("org.apache.hive.jdbc.HiveDriver");
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
我的查询执行如下:
try {
return namedParameterJdbcTemplate.queryForObject(
SQL_STRING,parameters,eventProcessorMonthlyStatsSumPerDayRowMapper
);
} catch (EmptyResultDataAccessException e){
return null;
}
但由于某种原因,我收到了 NoClassDefFound 错误。
java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy
at org.apache.hive.jdbc.Utils.extractURLComponents(Utils.java:472)
at org.apache.hive.jdbc.Utils.parseURL(Utils.java:332)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:168)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:155)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:146)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:205)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:169)
at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:612)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:669)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:694)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:748)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.queryForObject(NamedParameterJdbcTemplate.java:236)
...
Caused by: java.lang.ClassNotFoundException: org.apache.curator.RetryPolicy
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 71 more
根据我在 StackOverflow 上看到的其他响应以及基本逻辑,我缺少对“curator-client”中的“RetryPolicy”的依赖。所以我将依赖添加到我的 pom 文件中:
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-client</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>3.0.0</version>
</dependency>
在日志中,它说它下载了 curator-client.jar 和 curator-framework.jar,但我在我的外部库(在 IntelliJ IDEA 中)中没有看到它们。我不确定那些是否应该出现在那里。我对使用 Maven 比较陌生,但我不确定我在这里遗漏了什么。任何帮助都会很棒!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。