我是Solr和maven的新手,我想制作一个小型应用程序,通过SolrJ索引我的所有数据库表。
为此,我抬头看着他们使用MAVEN的tutorial
我安装了librairies和jar(maven除外),但我遇到了这个例外:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpRequestInterceptor
我查看了教程,我看到为了解决这个问题,我们需要将它添加到我的maven配置中:
org.slf4j SLF4J-简单 1.5.6
如果没有maven,有没有这样做呢? 谢谢
答案 0 :(得分:2)
使用maven。即便如此,我花了相当多的时间来确保依赖关系正确。教程都有点缺乏。下面是我的pom.xml,其中包含我maven带来的相关依赖项。也许它会帮助你。
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-core</artifactId>
<version>4.3.0</version>
</dependency>
<dependency>
<artifactId>solr-solrj</artifactId>
<groupId>org.apache.solr</groupId>
<version>4.3.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
答案 1 :(得分:0)
Maven是Solrj的建议构建技术,因为它可以自动管理第三方依赖项。如果没有依赖管理,破译这些关系是一种巨大的痛苦(Jar hell)。
我可以建议使用常春藤,其中command-line mode。
首先下载常春藤罐
要检索以下Maven模块及其所有依赖项:
<dependency>
<artifactId>solr-solrj</artifactId>
<groupId>org.apache.solr</groupId>
<version>1.4.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
然后按如下方式运行:
java -jar ivy.jar \
-dependency org.apache.solr solr-solrj 1.4.0 \
-retrieve "lib/[artifact]-[revision](-[classifier]).[ext]" \
-confs default
检索到lib目录:
lib/commons-httpclient-3.1.jar
lib/wstx-asl-3.2.7.jar
lib/slf4j-api-1.5.5.jar
lib/commons-codec-1.3.jar
lib/stax-api-1.0.1.jar
lib/geronimo-stax-api_1.0_spec-1.0.1.jar
lib/commons-logging-1.0.4.jar
lib/solr-solrj-1.4.0.jar
lib/commons-io-1.4.jar
lib/commons-fileupload-1.2.1.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpRequestInterceptor
这是因为缺少httpcore.jar文件。我通过浏览Maven Central找到了这个:
关于使用“slf4j-simple”的建议是提供一个日志实现,以防你的应用程序没有。
最后......这表明了我试图说的话。如果没有依赖关系管理工具(ivy,groovy,Maven),您就可以自行解密第三方jar依赖关系。