Thanks.

I just fix my problem, I missing a jar named libthrift-0.6.jar.

On Thu, Jun 21, 2012 at 10:10 AM, dong.yajun <dongt...@gmail.com> wrote:

> Hi list
>
> I'd like to connect to remote Cassandra using Java client, the following
> code I use, but ImcompatibleClassChangeError was occured, the source that
> was just dependent on the following jars:
>
> apache-cassandra-1.0.9.jar, apache-cassandra-clientutil-1.0.9.jar,
> apache-cassandra-thrift-1.0.9.jar
>
> and the code:
>
> import org.apache.cassandra.thrift.Cassandra;
> import org.apache.cassandra.thrift.TBinaryProtocol;
> import org.apache.thrift.protocol.TProtocol;
> import org.apache.thrift.transport.TFramedTransport;
> import org.apache.thrift.transport.TSocket;
> import org.apache.thrift.transport.TTransport;
> import org.apache.thrift.transport.TTransportException;
> import org.slf4j.Logger;
> import org.slf4j.LoggerFactory;
>
> public class TestClient {
>  private static final Logger logger =
> LoggerFactory.getLogger(TestClient.class);
>
> private static Cassandra.Iface createConnection()
> throws TTransportException {
>  if (System.getProperty("cassandra.host") == null
> || System.getProperty("cassandra.port") == null) {
>  logger.warn("cassandra.host or cassandra.port is not defined, using
> default");
> }
>  return createConnection("echadoop01", 9160, true);
> }
>
>  private static Cassandra.Client createConnection(String host, Integer
> port,
> boolean framed) throws TTransportException {
>  TSocket socket = new TSocket(host, port);
> TTransport trans = framed ? new TFramedTransport(socket) : socket;
>  trans.open();
> TProtocol protocol = new TBinaryProtocol(trans);
>
>  return new Cassandra.Client(protocol);
> }
>
> public static void main(String args[]) throws TTransportException {
>  Cassandra.Iface client = createConnection();
> }
> }
>
> and the exception:
>
> Exception in thread "main" java.lang.IncompatibleClassChangeError:
> Implementing class
> at java.lang.ClassLoader.defineClass1(Native Method)
>  at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
>  at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
>  at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
>  at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>  at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
>  at java.lang.ClassLoader.loadClass(ClassLoader.java:248)d
> at com.newegg.cassandra.TestClient.createConnection(TestClient.java:33)
>  at com.newegg.cassandra.TestClient.createConnection(TestClient.java:23)
> at com.newegg.cassandra.TestClient.main(TestClient.java:37)
>
> Does anyone have this kind of problem before? the above code could running
> with Cassandra1.0.7.  Thank you in advance.
>
>
> --
> Best.
>
> *Ric Dong *
>
>
>
>


-- 
*Ric Dong *
Newegg Ecommerce, MIS department

Reply via email to