2012-05-02 15 views
7

मैं इस लाइन पर इस अजीब अपवाद हो रही है:ClassNotFoundException HttpRequestInterceptor

HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr/"); 

स्टैक ट्रेस: ​​

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpRequestInterceptor 
    at com.polgar.dipl.index.SolrIndex.init(SolrIndex.java:36) 
    at com.polgar.dipl.index.SolrIndex.getInstance(SolrIndex.java:30) 
    at com.polgar.dipl.main.ArticleIndexer.main(ArticleIndexer.java:44) 
Caused by: java.lang.ClassNotFoundException: org.apache.http.HttpRequestInterceptor 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 3 more 
+0

... और लाइन 36 के आसपास कोड जो इस त्रुटि का कारण बनता है ...? – Makoto

+0

हैलो @ मकोटो: बड़ी बोल्ड फ़ॉन्ट लाइन;) – myro

+0

मुझे एक बड़ी, बोल्ड लाइन दिखाई नहीं दे रही है। मुझे कोड की एक पंक्ति दिखाई देती है जिसमें HttpRequestInterceptor शामिल नहीं है। – jahroy

उत्तर

19

एक ही समस्या हो रही है। हम दोनों को सोलर 3.6

के साथ खेलना होगा, मुझे HttpComponents प्रोजेक्ट से HttpClient जार डाउनलोड करना था। वे Solr 3.6

साथ

http://hc.apache.org/downloads.cgi

3,6 ग्राहक नई HttpComponents (4.0) सामान, पुराने नहीं HttpClient (3.1) सामान का उपयोग करता है का एक नया संस्करण है शामिल होने के लिए नहीं मालूम था। पुराना 3.1 जार है, लेकिन नया नहीं।

एक बार जब मैंने जारों की प्रतिलिपि बनाई, तो यह काम किया।

मैंने निम्नलिखित की प्रतिलिपि बनाई (सभी की आवश्यकता नहीं हो सकती है)।

httpclient-4.1.3.jar 
httpclient-cache-4.1.3.jar 
httpcore-4.1.4.jar 
httpmime-4.1.3.jar 

अब मेरे लिए काम करता है।

+0

बहुत बढ़िया। मैंने httpComponents डाउनलोड किया और मेवेन के साथ संकलित किया। बहुत अच्छा काम करता है। –

0

लगता है आप अपने क्रम classpath में HttpClient जार फ़ाइल लापता हैं।

10

आप Maven उपयोग कर रहे हैं SOLRJ शामिल करने के लिए, आप भी अपने पोम में निम्नलिखित वाक्यांशों चाहता हूँ:

<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpclient</artifactId> 
    <version>4.2.1</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpmime</artifactId> 
    <version>4.2.1</version> 
</dependency> 
0

मैं भी इस मुद्दे का सामना करना पड़ रहा था। इसके समाधान के लिए, मैं निम्नलिखित किया है:

  1. अपने में संस्करणों http घटकों के उपलब्ध चेक किए गए "~ .m2 \ भंडार \ ऑर्ग \ अपाचे \ httpcomponents" निर्देशिका
  2. उस आधार पर अपने पोम में निम्नलिखित प्रविष्टियों को जोड़ने .xml फ़ाइल और mvn clean install और mvn eclipse:eclipse को एक-एक करके चलाकर अपनी प्रोजेक्ट का पुनर्निर्माण करें। (आप प्रॉक्सी के पीछे हैं, तो सुनिश्चित करें कि आप अपने settings.xml फ़ाइल में आवश्यक विन्यास प्रदान की है बनाने के)

इस समस्या को हल करना चाहिए, यह मेरे लिए किया था। :)

 <dependency> 
       <groupId>org.apache.httpcomponents</groupId> 
       <artifactId>httpclient</artifactId> 
       <version>4.2.3</version> 
     </dependency> 
     <dependency> 
       <groupId>org.apache.httpcomponents</groupId> 
       <artifactId>httpmime</artifactId> 
       <version>4.2.3</version> 
     </dependency> 
संबंधित मुद्दे