Кассандра-Пелопс: Ошибка «Нет такого метода» при попытке вставить данные в Кассандру - PullRequest
1 голос
/ 06 декабря 2011

Я получаю следующую ошибку, когда пытаюсь вставить данные в кассандру с помощью pelops api

 java.lang.NoSuchMethodError: org.apache.cassandra.thrift.Column.<init>(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;J)V

Я использую следующие jar

  1. scale7-core-1.3.0.jar
  2. scale7-pelops-0.912-0.7.0-rc4-1.jar
  3. Все файлы jar в каталоге lib cassandra-1.0.5

ВызовСледующая функция вызывает исключение

public void writeToBatch(String columnFamily, String rowKey, String colmName,String value, int ttl)
 {
     this.mutator.writeColumn(columnFamily, rowKey,
                mutator.newColumn(colmName, value, ttl));
 }

Ошибка стека выглядит следующим образом:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.cassandra.thrift.Column.<init>(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;J)V
    at org.scale7.cassandra.pelops.Mutator.newColumn(Mutator.java:625)
    at org.scale7.cassandra.pelops.Mutator.newColumn(Mutator.java:562)
    at com.audienceadnetwork.cassandra.sstablewriter.utils.PelopsClient.writeToBatch(Unknown Source)

1 Ответ

4 голосов
/ 06 декабря 2011

Вы смешиваете привязки сбережений, построенные против cassandra-1.0.5, с версией пелопса, построенной против гораздо более старых привязок сбережений.Сам API обратно совместим, но вы не можете смешивать привязки, как это.У вас есть два варианта:

Наилучшим вариантом, вероятно, является обновление до более новой версии pelops.Есть версии моментальных снимков, доступных для выпусков 1.0.x в соответствии с их github: https://github.com/s7/scale7-pelops.

Если по какой-то причине вам нужно использовать версию pelops, использованную выше, вам также необходимо использовать привязки cassandra thrift, которыеВерсия зависит от, а не от построенных против Кассандры 1.0.5.

...