Hector to connect with Cassandra

3.1k views Asked by At

im trying to connect cassandra with Hector:

public class Main {
    public static void main(String[] args) {
        StringSerializer stringSerializer = StringSerializer.get();
        Cluster cluster = HFactory.getOrCreateCluster("Test Cluster", "localhost:9160");
        Keyspace keyspace =  HFactory.createKeyspace("Keyspace1", cluster);
        Mutator<String> mutator = HFactory.createMutator(keyspace, stringSerializer);
        mutator.insert("jsmith", "Standard1", HFactory.createStringColumn("first", "John"));
    }

}

The problem:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
    at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:230)
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:121)
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:112)
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:275)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:248)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:261)
    at me.prettyprint.cassandra.service.AbstractCluster.<init>(AbstractCluster.java:43)
    at me.prettyprint.cassandra.service.AbstractCluster.<init>(AbstractCluster.java:57)
    at me.prettyprint.cassandra.service.ThriftCluster.<init>(ThriftCluster.java:17)
    at me.prettyprint.hector.api.factory.HFactory.createCluster(HFactory.java:112)
    at me.prettyprint.hector.api.factory.HFactory.getOrCreateCluster(HFactory.java:104)
    at me.prettyprint.hector.api.factory.HFactory.getOrCreateCluster(HFactory.java:96)
    at javaapplication1.Main.main(Main.java:25)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
    at java.net.URLClassLoader$1.run(URLClassLoader.java:276)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:265)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:264)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:325)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:270)
    ... 13 more
Java Result: 1

How could i solve?

I'm down to my last patience with hector and cassandra, I have tried to connect and failed. i run twissjava sample and it works, but when i extend the main class to make my own test it doesn't run.

3

There are 3 answers

0
Schildmeijer On

This problem" is documented on the wiki on the "SLF4J in Hector"-page

Short version: you need to add a library that implements the SLF4J api.

0
Lyuben Todorov On

What development environment are you using?

I had the same problem in netbeans. Here are the files you need (but be carefull about the versions you are using).

log4j download: http://www.findjar.com/jar/log4j/log4j/1.2.11/log4j-1.2.11.jar.html slf4j download: http://www.findjar.com/jar/de/huxhorn/lilith/de.huxhorn.lilith.slf4j/0.9.35/de.huxhorn.lilith.slf4j-0.9.35.jar.html

p.s. search the findjar website for the correct versions if these ones dont work, but i'm using these two with cassandra 1.0.7 and hector 1.0.2 and they worked for me.

0
fahmi On

you have to add Hector dependencies like SLF4j,Log4j to your classpath,then your problem will solved..i have exactly same problem to you and my problem solved..sorry for my english..:D