2012-09-19 101 views
1

當我有這樣一個類(這是Eclipse的一個Java類,一個Maven項目下):異常實例CommonsHttpSolrServer

Exception in thread "main" java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory 
    at org.slf4j.LoggerFactory.staticInitialize(LoggerFactory.java:83) 
    at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:73) 
    at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.<clinit>(CommonsHttpSolrServer.java:77) 
    at ultimo.solrJ.SolrJ.main(SolrJ.java:19) 

public class SolrJ 
{ 
    public static void main(String[] args) 
    { 
     String url = "http://localhost:8983/solr"; 
     try { 
      SolrServer server = new CommonsHttpSolrServer(url); 
      server.deleteByQuery("*:*"); 
     } catch (MalformedURLException ex) { 
      ex.printStackTrace(); 
     } catch (SolrServerException ex) { 
      ex.printStackTrace(); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

運行這個類,我得到了以下異常後

我的pom.xml看起來是這樣的:

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <artifactId>solr-solrj</artifactId> 
     <groupId>org.apache.solr</groupId> 
     <version>1.4.0</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <artifactId>solr-core</artifactId> 
     <groupId>org.apache.solr</groupId> 
     <version>1.4.0</version> 
     <type>jar</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-simple</artifactId> 
     <version>1.5.6</version> 
    </dependency> 

任何人都可以幫忙解決我的問題嗎?我通過互聯網進行了訪問,找不到解決問題的方法。

回答

1
+0

我已經試過了,但是當我改變CommonsHttpSolrServer到HttpSolrServer然後,我有一個錯誤,沒有這樣的類。我試過導入org.apache.solr.client.solrj.impl.HttpSolrServer,但在我的項目中沒有這樣的類。 –

+0

是的,這意味着您將不得不下載並將其包含在您的項目中。如果有人(假設有其他人蔘與)抱怨指出CommonsHttpSolrServer已被棄用,因此任何開發都是非常不明智的。 –

+0

好的,這是我的pom.xml中舊版本solrj的問題。問題解決了。 –