2016-03-27 15 views
2

Cassandra'ya toplu yükleme için sstableloader kullanmaya çalışıyorum. Buradan kodu kullanmaya çalışıyorum: Uygulamanın çalışması sırasında java.lang.NoSuchMethodError: com.google.common.collect.Sets.newConcurrentHashSet istisnasına rastlıyorum: https://github.com/yukim/cassandra-bulkload-example Uygulama ithalatı aşağıdaki kütüphaneleri:java.lang.NoSuchMethodError: com.google.common.collect.Sets.newConcurrentHashSet

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 

: Uygulamam için aşağıdaki harici kavanozları kullanıyorum

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

: istisna aşağıdaki kod satırından geliyor

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; 

Hangi kütüphaneleri kaçırdığımı anlayamıyorum.

enter image description here

com.google.comman.collect.Sets digging i newConcurrentHashSet yöntemi değil. kod

enter image description here

+0

Guava google-koleksiyonları kavanoz yerine alır. Kurtulursanız ne olur? –

+0

@Robert Moskal: guava.jar'ı kaldırırsam ve sadece google-collections-1.0.jar'ım varsa hala NoSuchMethodError dosyasını alırım: com.google.common.collect.Sets.newConcurrentHashSet – srai

+0

Yöntemin yolu 'com. google.common.collect.Sets' yönteminin google koleksiyonları –

cevap

5

arayarak gibi görünüyor Ancak Sen google-collections-1.0.jar kaldırmalısınız.

Google Collection, Guava olarak yeniden adlandırıldı, böylece aynı sınıfların birden çok uygulamasına sahip olursunuz. Ve com.google.common.collect.Sets'un "eski" uygulaması bu yönteme sahip değildir ve bu yüzden NoSuchMethodError'u edinebilirsiniz.

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

+0

şimdi "java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet. oluşturucu() Lcom/google/ortak/toplamak/ImmutableSet $ ​​Oluşturucu;" f – srai

+0

Tamam, ama iyi ki şimdi ilk sayıyı geçtiniz. Yayını, kullandığınız tam sınıf yolunu ve yeni hata için stacktrace'i ve diğerlerini de güncellemeniz durumunda, başkaları da size yardımcı olabilir. Btw, google-collections-1.0.jar dosyasını kaldırdıktan sonra temiz bir işlem gerçekleştirdiniz mi? – gustf

+0

@skrai Bu cevap, sorunuzda belirtilen sorunu aştı. Yeni bir sorununuz varsa (yeni hata mesajı), lütfen bu cevabı onaylayın/kabul edin ve yeni soru sorun. – Aaron

İlgili konular