[ 
https://issues.apache.org/jira/browse/CASSANDRA-2263?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13040665#comment-13040665
 ] 

Lars Wunderlich commented on CASSANDRA-2263:
--------------------------------------------

I don't know whether this issue should be documented in a separate bug for 
0.8.0-rc1, but since this one deals with separation of jar file, I add the 
comment here.

The following code fails on my machine:

Class.forName("org.apache.cassandra.cql.jdbc.CassandraDriver");
Connection c = 
DriverManager.getConnection("jdbc:cassandra:/@localhost:9160/testspace");

As of apache-cassandra-0.8.0-rc1 together with apache-cassandra-cql-1.0.2.jar 
the connection to local host couldn't be established, even though it was 
running and the keyspace was fine, because of the following reasons:

1.) cql jar requires direct classpath relationship to 
apache-cassandra-0.8.0-rc1.jar, without it cannot run at all, what contradicts 
server implementation encapsulation/secret in my mind to attach core jar file: 

Exception in thread "main" java.lang.NoClassDefFoundError: 
org/apache/cassandra/db/marshal/AbstractType
        at org.apache.cassandra.cql.jdbc.Connection.execute(Connection.java:142)
        at org.apache.cassandra.cql.jdbc.Connection.execute(Connection.java:124)
        at 
org.apache.cassandra.cql.jdbc.CassandraConnection.<init>(CassandraConnection.java:83)
        at 
org.apache.cassandra.cql.jdbc.CassandraDriver.connect(CassandraDriver.java:86)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at TestConnection.main(TestConnection.java:18)

2.) apache-cassandra-0.8.0-rc1.jar internally contains 
org.apache.cassandra.cql.jdbc package a second time, which might conflict with 
the cql standalone jar version of the driver in terms of class compatibility.

3.) Using CassandraDriver from core apache-cassandra-0.8.0-rc1.jar results in 
an error message that cassandra.yaml couldn't be found, but cassandra.yaml is 
not required from my point of view for clients anyway.

Cannot locate cassandra.yaml
Fatal configuration error; unable to start server.  See log for stacktrace.

> cql driver jar
> --------------
>
>                 Key: CASSANDRA-2263
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2263
>             Project: Cassandra
>          Issue Type: Bug
>          Components: API
>    Affects Versions: 0.8 beta 1
>            Reporter: Eric Evans
>            Priority: Minor
>              Labels: cql
>             Fix For: 1.0
>
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> Work was done in CASSANDRA-1848  to create a jar for the CQL Java driver.  
> The generated Thrfit code was broken out into it's own jar as well, since 
> that is a dependency for both servers and clients. However, based on the work 
> currently happening in CASSANDRA-2262 and CASSANDRA-2124, it seems that 
> additional dependencies will exist, and new jar(s) will need to be created.
> The easiest way to fix this will probably be to put copies of all of 
> {{o.a.c.db.marshal}} and {{o.a.c.utils}}, and a copy of 
> {{o.a.c.config.ConfigurationException}} into the CQL driver jar (a split 
> along those lines to create another jar doesn't make sense IMO).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to