Cassandra- Pelops: Erreur de méthode sans erreur lors de la tentative d'insertion de données dans Cassandra

StackOverflow https://stackoverflow.com/questions/8402604

Question

J'obtiens l'erreur suivante lorsque j'essaie d'insérer des données dans Cassandra à l'aide de l'api pelops

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

J'utilise les fichiers JAR suivants

  1. scale7-core-1.3.0.jar
  2. scale7-pelops-0.912-0.7.0-rc4-1.jar
  3. Tous les jars du répertoire lib de cassandra-1.0.5

L'appel à la fonction suivante provoque une exception

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

La pile d'erreurs est la suivante:

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)
Était-ce utile?

La solution

Vous mélangez les liaisons d'épargne construites contre cassandra-1.0.5 avec une version de pelops construite sur des liaisons d'épargne beaucoup plus anciennes.L'API elle-même est rétrocompatible mais vous ne pouvez pas mélanger des liaisons comme celle-ci.Vous avez deux options:

La meilleure option est probablement de passer à une version plus récente de pelops.Il existe des versions instantanées disponibles pour les versions 1.0.x en fonction de leur github: https://github.com/s7/ scale7-pelops .

Si, pour une raison quelconque, vous devez utiliser la version de pelops utilisée ci-dessus, vous devez également utiliser les fixations cassandra thrift dont dépend cette version, plutôt que celles construites avec cassandra 1.0.5.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top