2016-04-25 20 views
9

मैं निम्नलिखित त्रुटि दिखाई दे रही:java.lang.NoClassDefFoundError: com/गूगल/आम/util/समवर्ती/FutureFallback

java.lang.NoClassDefFoundError: com/google/common/util/concurrent/FutureFallback 

जब cluster.connect() कहा जाता है:

  String hosts = CassandraClientUtil.getHost(); 
      String localDC = CassandraClientUtil.getLocalDC(); 
      Cluster cluster = null; 
      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); 

पोम .xml निम्नलिखित निर्भरता है:

<dependencies> 
     <dependency> 
       <groupId>com.google.guava</groupId> 
       <artifactId>guava</artifactId> 
       <version>16.0.1</version> 
     </dependency> 
     <dependency> 
      <groupId>com.datastax.cassandra</groupId> 
      <artifactId>cassandra-driver-core</artifactId> 
      <version>2.1.9</version> 
     </dependency> 
     <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-mapping</artifactId> 
      <version>2.1.9</version> 
     </dependency> 
     <dependency> 
      <groupId>com.google.code.gson</groupId> 
      <artifactId>gson</artifactId> 
      <version>2.3.1</version> 
     </dependency> 
    </dependencies> 

मैं stackoverflowपर एक पोस्ट को देखा 10 जहां उन्होंने अमरूद संस्करण को 16.0.1 में अपग्रेड करने की अनुशंसा की लेकिन इससे मेरी समस्या को हल करने में मेरी सहायता नहीं हुई। यहां से कुछ निर्देश वास्तव में उपयोगी होंगे क्योंकि मैं कैसंद्रा के लिए नया हूं। अधिक पृष्ठभूमि जोड़ने के लिए यह बात एक स्टैंडअलोन प्रोजेक्ट के रूप में काम करती है, जब मैं इस परियोजना को किसी अन्य प्रोजेक्ट के लिए मैवेन निर्भरता के रूप में शामिल करता हूं तो यह इस रनटाइम त्रुटि को बढ़ाता है।

+1

गुवा 14 में फ्यूचरफॉलबैक पेश किया गया है, इसलिए मुझे संदेह है कि आपके द्वारा निर्दिष्ट संस्करण (16.0.1) को ध्यान में नहीं रखा जा रहा है और इसके बजाय कुछ पुराने संस्करण का उपयोग किया जा रहा है; क्या आप "एमवीएन निर्भरता: संकल्प" चला सकते हैं और अपने निर्माण के लिए हलवा के वास्तविक संस्करण को हल कर सकते हैं? – adutra

+1

@adutra और गुवा 1 में बहिष्कृत, फिर ** ** ** अमरूद में हटाया गया **: https://google.github.io/guava/releases/19.0/api/docs/com/google/common/util/concurrent/FutureFallback .html –

+1

यह सच है, हम इसके बारे में जानते हैं और इसे बदलने पर काम कर रहे हैं: https://datastax-oss.atlassian.net/browse/JAVA-1328। वर्तमान में, चालक गुवा 20 के साथ काम नहीं कर सकता है। – adutra

उत्तर

1

बाहरी अमरूद संस्करण जोड़ें न करें। जो भी डेटास्टैक्स-कैसंड्रा-कोर केवल आप ही उस संस्करण को डाल सकते हैं। अन्यथा इसकी आवश्यकता नहीं है।

10

com.google.common.util.concurrent.FutureFallback गुवा 1 9.0 में बहिष्कृत किया गया है और गुवा 20.0 के बाद हटा दिया गया है।

गुवा 1 9.0 का उपयोग करें और जब तक आप कैसंड्रा ड्राइवर को अपग्रेड न करें, तब तक 20.0 या इससे अधिक का उपयोग न करें।

संबंधित मुद्दे