【发布时间】:2015-10-03 01:20:48
【问题描述】:
我正在使用 Solr 对数据库执行搜索。我在 pom.xml 中添加了以下依赖项,但它不起作用。
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>5.3.1</version>
</dependency>
我收到运行时错误 java.lang.NoClassDefFoundError: org/apache/solr/common/params/SolrParams
我通过将整个库放在 WEB-INF/lib 文件夹下解决了这个问题。然而,这让我感到困惑,为什么 Maven 依赖项不起作用。 我正在使用 tomcat 8.0。
【问题讨论】:
-
尝试清理 Tomcat 临时文件夹和 war 并使用
mvn clean install从头开始重建。 -
pom中的<packaging>标签的价值是什么?您没有在solr-solrj<dependency>中包含<scope>标记,因此应用了默认的scope(compile)。这意味着在构建期间和运行时都需要相关的工件(通常是 JAR 文件),因此该工件应该已包含在您的部署包中。NoClassFoundError表示相关工件在运行时不存在,这就是为什么将库放在WEB-INF/lib中解决问题的原因。根本问题可能在您的pom中。可以添加完整的内容吗? -
那么我应该如何处理
标签?