Проблема запуска Java .war на Tomcat - PullRequest
1 голос
/ 20 февраля 2009

Я следую учебному пособию здесь:

http://nutch.sourceforge.net/docs/en/tutorial.html

Сканирование работает нормально, как и тестовый поиск из командной строки.

Когда я пытаюсь запустить tomcat после перемещения ROOT.war на место (разархивирования и создания новой папки ROOT во время запуска), я получаю страницу с ошибкой 500 и некоторыми ошибками в журналах Tomcat.

HTTP Status 500 - Нет контекста, настроенного для обработки этого запроса

2009-02-19 15:55:46 WebappLoader[]: Deploy JAR /WEB-INF/lib/xerces-2_6_2.jar to C:\Program Files\Apache Software Foundation\Tomcat 4.1\webapps\ROOT\WEB-INF\lib\xerces-2_6_2.jar
2009-02-19 15:55:47 ContextConfig[] Parse error in default web.xml
org.apache.commons.logging.LogConfigurationException: User-specified log class 'org.apache.commons.logging.impl.Log4JLogger' cannot be found or is not useable.
    at org.apache.commons.digester.Digester.createSAXException(Digester.java:3181)
    at org.apache.commons.digester.Digester.createSAXException(Digester.java:3207)
    at org.apache.commons.digester.Digester.endElement(Digester.java:1225) ............ etc.

Таким образом, похоже, что причиной ошибки является файл по умолчанию web.xml, а не Log4JLogger - хотя я очень мало знаю о Java. Я не редактировал файл web.xml в каталоге tomcat.

Кто-нибудь знает, что здесь происходит?

версия / информация:

орех 0,9

Tomcat 4.1

jre1.5.0_08

jdk1.6.0_12

NUTCH_JAVA_HOME = C: \ Program Files \ Java \ jdk1.6.0_12

JAVA_HOME = C: \ Program Files \ Java \ jdk1.6.0_12

Ответы [ 3 ]

2 голосов
/ 20 февраля 2009

В Java приложения иногда используют сторонние библиотеки. В этом случае кажется, что ваша установка Tomcat не включает в себя одну такую ​​библиотеку. Судя по полученной вами ошибке, похоже, что вам не хватает библиотеки Apache Commons Logging (широко используемой в мире Java, которая, как оказалось, не поставляется в комплекте с Tomcat).

Типичный способ распространения библиотеки на Java - это файл JAR (Java Archive). Проще говоря, файл JAR - это просто набор классов Java, которые были заархивированы в файл, который был переименован из * .zip в * .jar.

Чтобы получить файл JAR Commons Logging, вы можете загрузить его с сайта загрузки Apache Commons . Вам понадобится бинарная версия, а не исходная версия. Если вам случится загрузить версию 1.1.1 (например), вы должны разархивировать файл commons-logging-1.1.1-bin.zip. Внутри вы найдете файл с именем commons-logging-1.1.1.jar. Скопируйте этот файл JAR в каталог lib, где установлено программное обеспечение Tomcat. Вам может потребоваться перезапустить Tomcat, прежде чем он заметит этот новый файл.

Надеемся, что в следующий раз, когда вы попытаетесь использовать приложение, вы можете получить или не получить еще одну ошибку, указывающую, что еще один класс не может быть найден. В таком случае, я приветствую вас в чудесном мире охоты на JAR! :) Надеемся, что приложению не потребуется слишком много библиотек помимо регистрации Commons Logging, но мы увидим (учитывая, что вы пытаетесь запустить Nutch, я могу предвидеть, что требуется Lucene , так что будьте к этому готовы) .

Веселись с Натчем!

1 голос
/ 20 февраля 2009

Для меня это говорит о том, что он не может найти регистратор, который сообщается как ошибка синтаксического анализа. Я думаю, это немного странный или дезинформирующий способ выразить это. В любом случае, я думаю, вам нужно добавить Commons Logging .jar в ваши библиотеки (WEB-INF/lib) и перезапустить Tomcat, и тогда он должен работать.

Также ваш Tomcat, кажется, древний, если возможно, я бы порекомендовал получить 5.5.x или 6.x.

0 голосов
/ 20 февраля 2009

, если вы обнаружили, что в приложении требуется .jar, то решение вашей проблемы может быть следующим:

  1. Стоп Tomcat
  2. перейти к% TOMCAT_HOME% / работать, стереть все внутри

эта «рабочая» папка, как следует из ее названия, содержит классы, используемые для работы, иногда доступ к некоторым из этих файлов может быть заблокирован по любой причине. Когда я получаю такое сообщение, это первое, что нужно сделать. Большую часть времени это работает ...

...