You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by "dong.yajun" <do...@gmail.com> on 2012/06/21 04:10:00 UTC

Could not connect to cassandra 1.0.9

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 *

Re: Could not connect to cassandra 1.0.9

Posted by "dong.yajun" <do...@gmail.com>.
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 <do...@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