与Sorl有问题。当试图运行以下代码行时:
HttpSolrClient solr = new HttpSolrClient.Builder( "http://localhost:8983/solr/core" ).build();
我收到以下错误: 引起:java.lang.NoClassDefFoundError:
org/apache/http/impl/client/SystemDefaultHttpClient
at org.apache.solr.client.solrj.impl.HttpSolrClient.<init>(HttpSolrClient.java:211)
at org.apache.solr.client.solrj.impl.HttpSolrClient.<init>(HttpSolrClient.java:228)
at org.apache.solr.client.solrj.impl.HttpSolrClient$Builder.build(HttpSolrClient.java:890)
我在几篇帖子中读到,这可能是Maven的依赖问题,因为Swagger和Sorl都使用httpClient。我将依赖项移到了同一个pom中,并在dependencymanagement
标记中包含了依赖项。
执行此操作后,我运行了命令:mvn dependency:tree -Dverbose
查看树,很明显删除了重复的依赖项。但是,我仍然得到同样的错误。
使用:
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>6.6.0</version>
</dependency>
任何帮助将不胜感激!
答案 0 :(得分:3)
我的猜测是,Swagger正在推进该库的早期版本。
看起来SystemDefaultHttpClient自版本4.2以来才存在。
mvn dependency:tree -Dverbose
在两种情况下都显示相同版本的http客户端吗?