我正在尝试运行搜索Web应用程序,并且需要使用另一个Java项目来执行所有后端操作。我将项目导出到一个jar文件中,并将其添加到我的动态webapp项目中。我尝试的第一件事是“添加外部罐子”来自Properties> Java构建路径。这没用,所以我也尝试在WEB-INF / lib中添加jar也没用。如何正确添加jar文件,以便在webapp中使用该项目?
更具体地说,这是我得到的错误:
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
根本原因
java.lang.NoClassDefFoundError: org/apache/accumulo/core/client/Instance
com.afspq.model.Results.getResults(Results.java:46)
com.afspq.web.ProcessQuery.doGet(ProcessQuery.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.ClassNotFoundException: org.apache.accumulo.core.client.Instance
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
com.afspq.model.Results.getResults(Results.java:46)
com.afspq.web.ProcessQuery.doGet(ProcessQuery.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
注意Apache Tomcat / 6。0。3。3日志中提供了根本原因的完整堆栈跟踪。
答案 0 :(得分:0)
我会将以下内容添加到您的Maven pom.xml文件中:
<dependency>
<groupId>org.apache.accumulo</groupId>
<artifactId>accumulo-core</artifactId>
<version>1.4.0</version>
</dependency>
并且不在Eclipse中添加它。 pom.xml是Eclipse的真相。
要检查所有内容是否正确,请执行命令行:
mvn clean package
将创建的战争部署到tomcat中以确保一切正常。
答案 1 :(得分:0)
这是一个痛苦的过程,但我不得不手动添加来自Accumulo,Hadoop和Zookeeper的所有jar文件。我不得不将jar文件添加到两个位置。一个是构建路径(右键单击Web项目&gt;属性&gt; Java构建路径&gt;添加外部jar),另一个是我的Web项目中的WebContent / WEB-INF / lib文件夹。这为我修好了。出于某种原因,Maven没有添加依赖项,尽管它们都是在我的pom.xml中指定的。