繁体   English   中英

java.lang.NoSuchMethodError:com.google.common.collect.Sets.newConcurrentHashSet

[英]java.lang.NoSuchMethodError: com.google.common.collect.Sets.newConcurrentHashSet

我正在尝试使用sstableloader批量加载到Cassandra。 我正在尝试使用此处的代码: https//github.com/yukim/cassandra-bulkload-example

我在运行应用程序期间遇到了java.lang.NoSuchMethodError:com.google.common.collect.Sets.newConcurrentHashSet异常。 该应用程序导入以下库:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.List;

import org.supercsv.io.CsvListReader;
import org.supercsv.prefs.CsvPreference;

import org.apache.cassandra.config.Config;
import org.apache.cassandra.dht.Murmur3Partitioner;
import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.io.sstable.CQLSSTableWriter;

例外情况来自以下代码行:

    // Prepare SSTable writer
CQLSSTableWriter.Builder builder = CQLSSTableWriter.builder();

我正在为我的应用程序使用以下外部jar:

super-csv-2.0.0.jar
cassandra-all-3.4.jar
gradle-wrapper.jar
slf4j-api-1.7.19.jar
concurrentlinkedhashmap-lru-1.3.jar
slf4j-simple-1.7.19.jar
guava.jar
google-collections-1.0.jar

我无法确定我缺少哪些库。

在此输入图像描述

深入研究com.google.comman.collect.Sets我找不到newConcurrentHashSet方法。 但是代码似乎在调用它

在此输入图像描述

你应该删除google-collections-1.0.jar

Google Collection已重命名为Guava,因此您可以多次实现相同的类。 com.google.common.collect.Sets的“旧”实现没有这个方法,这就是为什么你得到NoSuchMethodError

https://code.google.com/archive/p/google-collections/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM