2016-04-22 151 views
3

我有一個Maven項目爲項目A Ajava.lang.NoClassDefFoundError:無法初始化類com.datastax.driver.core.Cluster

的pom.xml:

<dependencies> 
     <dependency> 
      <groupId>com.app.cops</groupId> 
      <artifactId>cassandra-logging</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
     </dependency> 
</dependencies> 

的pom.xml該項目卡桑德拉 - 日誌記錄:

<dependencies> 
     <dependency> 
      <groupId>io.netty</groupId> 
      <artifactId>netty</artifactId> 
      <version>3.9.0.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>com.codahale.metrics</groupId> 
      <artifactId>metrics-core</artifactId> 
      <version>3.0.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.7.5</version> 
     </dependency> 
     <dependency> 
      <groupId>com.datastax.cassandra</groupId> 
      <artifactId>cassandra-driver-core</artifactId> 
      <version>3.0.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.datastax.cassandra</groupId> 
      <artifactId>cassandra-driver-mapping</artifactId> 
      <version>3.0.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.guava</groupId> 
      <artifactId>guava</artifactId> 
      <version>19.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>2.3.1</version> 
     </dependency> 
    </dependencies> 

的警察測井projecct具有下面的代碼:

CassandraCopsComponentLogger.instance = new CassandraCopsComponentLogger(); 

       String hosts = CassandraClientUtil.getHost(); 
       String localDC = CassandraClientUtil.getLocalDC(); 
       Cluster cluster; 
       if (StringUtils.isNotEmpty(localDC)) 
       { 
        cluster = Cluster.builder().addContactPoints(hosts.split(",")) 
          .withCredentials(CassandraCopsComponentLogger.USER_NAME, CassandraCopsComponentLogger.AUTH_CODE) 
          .withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.LOCAL_ONE)) 
          .withLoadBalancingPolicy(new TokenAwarePolicy(DCAwareRoundRobinPolicy.builder().withLocalDc(localDC).build())).build(); 
       } 
       else 
       { 
        cluster = Cluster.builder().addContactPoints(hosts.split(",")) 
          .withCredentials(CassandraCopsComponentLogger.USER_NAME, CassandraCopsComponentLogger.AUTH_CODE) 
          .withQueryOptions(new QueryOptions().setConsistencyLevel(ConsistencyLevel.LOCAL_ONE)).build(); 
       } 

       Session session = cluster.connect(); 
       CassandraCopsComponentLogger.mappingManager = new MappingManager(session); 

我不斷獲取以下行除外:

cluster = Cluster.builder().addContactPoints(hosts.split(",")) 

我在卡桑德拉測井項目單元測試,與此代碼工作正常。但是,當我打電話從項目中相同的代碼我得到的

java.lang.NoClassDefFoundError: Could not initialize class com.datastax.driver.core.Cluster 
+0

您的設置似乎罰款。項目A的構建是否成功? – chaitan64arun

+0

是的。項目A能夠成功構建 –

回答

1

我能夠通過降級卡桑德拉依賴版本<version>2.1.9</version>解決這個問題。不知道這是如何幫助,但我能夠前進。

0

更新版本卡桑德拉驅動核心和卡桑德拉驅動器映射到3.3.0 - 這個工作對我來說:

 <dependency> 
      <groupId>com.datastax.cassandra</groupId> 
      <artifactId>cassandra-driver-core</artifactId> 
      <version>3.3.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.datastax.cassandra</groupId> 
      <artifactId>cassandra-driver-mapping</artifactId> 
      <version>3.3.0</version> 
     </dependency> 
相關問題