实例化HttpSolrServer时出现IllegalAccessError

时间:2015-04-13 15:45:48

标签: java maven solr solrj

我正在Maven项目下的类上执行SolrQuery。尝试执行查询时,我收到此错误:

SEVERE: 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.HttpSolrServer.<clinit>(HttpSolrServer.java:91)
....

这是我的pom.xml:

<dependency>
  <groupId>org.apache.solr</groupId>
  <artifactId>solr-core</artifactId>
  <version>4.8.1</version>
</dependency>
<dependency>
  <groupId>org.apache.solr</groupId>
  <artifactId>solr-solrj</artifactId>
  <version>4.8.1</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.12</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.12</version>
</dependency>

它正在另一个不使用Maven但通过添加jar的项目中工作。我在Maven中使用了普通web项目中使用的相同版本。 任何人都可以帮忙解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您应该删除slf4j依赖项。 SolrJ正在引入这些依赖项的不同版本。看来你所引入的版本覆盖了SorlJ使用的旧版本。这应该是导致错误的原因。