2012-05-02 27 views
7

Tôi nhận được ngoại lệ kỳ lạ này trên dòng này:ClassNotFoundException HttpRequestInterceptor

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

Stack trace:

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

... và mã xung quanh dòng 36 gây ra lỗi này là ...? – Makoto

+0

Xin chào @Makoto: dòng chữ đậm lớn;) – myro

+0

Tôi không thấy dòng chữ đậm, đậm. Tôi thấy chính xác một dòng mã không bao gồm HttpRequestInterceptor. – jahroy

Trả lời

19

Nhận sự cố tương tự. Cả hai chúng ta đều phải chơi với Solr 3.6

Tôi đã phải tải xuống các lọ HttpClient từ dự án HttpComponents. Họ dường như không được bao gồm với Solr 3,6

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

3,6 Có một phiên bản mới của khách hàng sử dụng các HttpComponents mới (4.0) công cụ, không phải là cũ HttpClient (3.1) thứ. Bình 3.1 cũ có ở đó, nhưng không có cái mới.

Khi tôi sao chép các lọ, nó hoạt động.

Tôi đã sao chép thông tin sau (không phải tất cả có thể cần thiết).

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

làm việc cho tôi, ngay bây giờ.

+0

Tuyệt vời. Tôi đã tải xuống httpComponents và được biên dịch bằng maven. Hoạt động tuyệt vời. –

0

Hình như bạn đang thiếu file Jar HttpClient trong classpath thời gian chạy của bạn.

10

Nếu bạn đang sử dụng Maven để bao gồm SOLRJ, bạn cũng sẽ muốn các cụm từ sau đây trong POM của bạn:

<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

Tôi cũng đã phải đối mặt với vấn đề này. Để giải quyết điều này, tôi đã làm như sau:

  1. Kiểm tra các phiên bản có sẵn của các thành phần http tại của bạn "~ .m2 \ kho \ org \ apache \ httpcomponents" thư mục
  2. Trên cơ sở đó thêm các mục sau đây trong pom của bạn .xml tệp và xây dựng lại dự án của bạn bằng cách chạy từng câu một mvn clean installmvn eclipse:eclipse. (Nếu bạn đứng sau proxy, hãy đảm bảo rằng bạn đã cung cấp cấu hình cần thiết trong tệp settings.xml của mình)

Điều này sẽ giải quyết được sự cố, Đã xảy ra với tôi. :)

 <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> 
Các vấn đề liên quan