2012-06-28 2 views
0

Я пытаюсь запустить веб-приложение поиска и должен использовать другой проект Java для выполнения всех операций с базой данных. Я экспортировал проект в файл jar и добавил его в мой динамический проект webapp. Первое, что я пробовал, - «Добавить внешние банки» из «Свойства»> «Путь сборки Java». Это не сработало, поэтому я также попытался добавить банку в WEB-INF/lib, которая также не работала. Как правильно добавить файл jar, чтобы я мог использовать этот проект в моем webapp?NoClassDefFoundError при использовании класса из файла 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 журналов.

+0

Это только дает вам ошибки времени выполнения? – BlackVegetable

+0

Да, это ошибка времени выполнения. Кроме того, на вкладке «Проблемы» есть сообщение, в котором говорится: «Путь ввода/path/path/path/path не будет экспортирован или опубликован. Runtime ClassNotFoundExceptions могут возникнуть. ' –

+0

Какая IDE вы используете? – BlackVegetable

ответ

0

Это был болезненный процесс, но мне пришлось вручную добавить все файлы jar из Accumulo, Hadoop и Zookeeper. Я должен был добавить файлы jar в два местоположения. Одним из них был путь сборки (щелкните правой кнопкой мыши веб-проект> «Свойства»> «путь сборки Java»> «Добавить внешние банки»), а другой - папка WebContent/WEB-INF/lib в моем веб-проекте. Это исправило это для меня. По какой-то причине Maven не добавлял зависимости, хотя все они были указаны в моем pom.xml.

0

Я хотел бы добавить следующее в файл pom.xml Maven:

<dependency> 
    <groupId>org.apache.accumulo</groupId> 
    <artifactId>accumulo-core</artifactId> 
    <version>1.4.0</version> 
</dependency> 

и НЕ добавлять его в Eclipse. Pom.xml - это правда не Eclipse.

Чтобы проверить все правильно перейти в командной строке:

mvn clean package 

развернуть созданную войну в кот, чтобы убедиться, что все в порядке.

+0

У меня уже есть все необходимые зависимости в моем pom.xml. –

+1

К сожалению, трассировка стека говорит что-то другое. Без твоего жука это тяжело! – khmarbaise

Смежные вопросы