简体   繁体   中英

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

I am trying to use the sstableloader for bulk loading to Cassandra. I am trying to use code from here : https://github.com/yukim/cassandra-bulkload-example

I run into java.lang.NoSuchMethodError: com.google.common.collect.Sets.newConcurrentHashSet exception during running of application. The application imports the following libraries :

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;

The exception is coming from the following line of code :

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

I am using the following external jars for my application :

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

I am unable to figure which libraries i am missing.

在此输入图像描述

Digging into com.google.comman.collect.Sets i cannot find the newConcurrentHashSet method. However the code seems to be calling it

在此输入图像描述

You should remove google-collections-1.0.jar .

Google Collection is renamed to Guava so you have multiple implementation of the same classes. And the "old" implementation of com.google.common.collect.Sets does not have this method and thats why you get the NoSuchMethodError .

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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