0

我正在尝试运行一个搜索 Web 应用程序,并且需要使用另一个 Java 项目来执行所有后端操作。我将项目导出到一个 jar 文件中,并将其添加到我的动态 webapp 项目中。我尝试的第一件事是“属性”>“Java 构建路径”中的“添加外部 jars”。这不起作用,所以我也尝试在 WEB-INF/lib 中添加 jar,但它也不起作用。如何正确添加 jar 文件以便我可以在我的 web 应用程序中使用该项目?

更具体地说,这是我得到的错误:

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)

note Apache Tomcat/6.0.35 日志中提供了根本原因的完整堆栈跟踪。

4

2 回答 2

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 以确保一切正常。

于 2012-06-28T17:53:35.320 回答
0

这是一个痛苦的过程,但我不得不手动添加来自 Accumulo、Hadoop 和 Zookeeper 的所有 jar 文件。我不得不将 jar 文件添加到两个位置。一个是构建路径(右键单击 Web 项目 > 属性 > Java 构建路径 > 添加外部 jars),另一个是我的 Web 项目中的 WebContent/WEB-INF/lib 文件夹。这为我修好了。出于某种原因,Maven 没有添加依赖项,尽管它们都在我的 pom.xml 中指定。

于 2012-06-29T00:10:00.563 回答