0

検索Webアプリケーションを実行しようとしていますが、すべてのバックエンド操作を実行するには別のJavaプロジェクトを使用する必要があります。プロジェクトをjarファイルにエクスポートし、動的Webアプリケーションプロジェクトに追加しました。私が最初に試したのは、「プロパティー」>「Javaビルドパス」から「外部jarを追加」でした。これは機能しなかったので、WEB-INF/libにjarを追加してみましたがこれも機能しませんでした。Webアプリでそのプロジェクトを使用できるようにjarファイルを正しく追加するにはどうすればよいですか?

より具体的には、これは私が得るエラーです:

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.35ログで入手できます。

4

2 に答える 2

0

Mavenpom.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ファイルを2つの場所に追加する必要がありました。1つはビルドパス([Webプロジェクト]>[プロパティ]>[Javaビルドパス]>[外部jarの追加]を右クリック)で、もう1つはWebプロジェクトのWebContent / WEB-INF/libフォルダーでした。これで修正されました。何らかの理由で、Mavenは依存関係を追加していませんでしたが、それらはすべて私のpom.xmlで指定されていました。

于 2012-06-29T00:10:00.563 に答える