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>
任何人都可以幫忙解決我的問題嗎?我通過互聯網進行了訪問,找不到解決問題的方法。
我已經試過了,但是當我改變CommonsHttpSolrServer到HttpSolrServer然後,我有一個錯誤,沒有這樣的類。我試過導入org.apache.solr.client.solrj.impl.HttpSolrServer,但在我的項目中沒有這樣的類。 –
是的,這意味着您將不得不下載並將其包含在您的項目中。如果有人(假設有其他人蔘與)抱怨指出CommonsHttpSolrServer已被棄用,因此任何開發都是非常不明智的。 –
好的,這是我的pom.xml中舊版本solrj的問題。問題解決了。 –