2017-02-27 13 views
5

मैं अपने स्प्रिंग बूट एप्लिकेशन को स्थानीय लोचदार खोज 5.2.1 उदाहरण से कनेक्ट करने का प्रयास कर रहा हूं। जब मैं "org.springframework.boot का उपयोग करता हूं: वसंत-बूट-स्टार्टर-डेटा-लोचदार खोज" निर्भरता, मुझे सामना करना पड़ता है "असमर्थित संस्करण से संदेश प्राप्त हुआ: [2.0.0] न्यूनतम संगत संस्करण है: [5.0.0] "। मुझे लगता है कि यह स्टार्टर निर्भरता में elasticsearch संस्करण 2.4.4 है। तो इस त्रुटि को हल करने के लिए, मैं elasticsearch.version> 5.2.1/elasticsearch.version> लाइन जोड़कर pom.xml गुणों को संपादित करता हूं। लेकिन इस बार मैं मिल "java.lang.NoSuchMethodError: org.elasticsearch.client.transport.TransportClient.builder()"elasticsearch 5.2.1 के साथ स्प्रिंग बूट को कॉन्फ़िगर कैसे करें?

इस मुद्दे को दूर करने, मैं बनाने के नीचे की तरह कस्टम config वर्ग:

@Configuration 
public class ElasticsearchConfiguration { 

@Bean 
public Client client() throws UnknownHostException { 
    TransportClient client = new PreBuiltTransportClient(Settings.EMPTY) 
      .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)); 

    return client; 
} 

@Bean 
public ElasticsearchTemplate elasticsearchTemplate() throws UnknownHostException { 
    return new ElasticsearchTemplate(client()); 
} 
} 

इस बार मुझे apache.logging.log4j अपवाद (check here) मिलता है इसलिए मैं आवश्यक निर्भरता जोड़ता हूं।

अंत में मैं त्रुटि से नीचे आ गया और वहां अटक गया। क्या कोई इस से मेरी मदद कर सकता है?

नेस्टेड अपवाद java.lang.NoClassDefFoundError है: org/elasticsearch/कार्रवाई/गिनती/CountRequestBuilder

उत्तर

1

मैं एक ही और CountRequestBuilder के लिए भी है कि त्रुटि मिल रही है, कारण यह है कि CountRequestBuilder वर्ग पदावनत है और अब निकाल दिया जाता है है की कोशिश की 5.x लोचदार खोज संस्करणों से, उस वर्ग को SearchRequestBuilder द्वारा प्रतिस्थापित किया गया है लेकिन दुर्भाग्यवश spring-data-elasticsearch इसे अपने जार की नवीनतम रिलीज में भी प्रदान नहीं करता है और CountRequestBuilder का उपयोग ElasticSearchTemplate में किया जाता है।

मैं कुछ समाधान ढूंढ रहा हूं। अगर हल करने में सक्षम हो तो मैं पोस्ट करूंगा।

4

spring-data-elasticsearch का जिथब पृष्ठ दिखाता है कि यह वर्तमान में संस्करण 2.4.0 तक केवल elasticsearch का समर्थन करता है।

अब के लिए आप 3 विकल्प हैं:

  • प्रतीक्षा और आशा है कि
  • चेकआउट pull request
  • चेकआउट देव शाखा 5.0.x-प्रेप
2

आप elasticsearch जावा एपीआई का उपयोग कर सकते वसंत-डेटा-लोचदार खोज का उपयोग करने के बजाय परिवहन ग्राहक बनाने के लिए।

2

आपको स्प्रिंग बूट 2 का उपयोग करने की आवश्यकता है। मेरे spring-boot-elasticsearch-5.x उदाहरण देखें।

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