在Tomcat上运行Java .war的问题

时间:2009-02-20 00:03:40

标签: java tomcat nutch

我在这里遵循教程:

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

抓取工作正常,从命令行进行测试搜索也是如此。

当我尝试在将ROOT.war移动到位后启动tomcat(并且它在启动期间取消归档并创建新的ROOT文件夹)时,我得到一个页面,其中包含500错误以及Tomcat日志中的一些错误。

HTTP状态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知之甚少。我没有编辑tomcat目录中的web.xml。

任何人都知道这里发生了什么?

版本/信息:

nutch 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 个答案:

答案 0 :(得分:2)

在Java中,应用程序有时依赖于第三方库。在这种情况下,您的Tomcat安装似乎不包含一个这样的库。根据您收到的错误判断,您似乎缺少Apache Commons Logging库(Java世界中常用的库,恰好不会与Tomcat捆绑在一起)。

在Java中分发库的典型方法是通过JAR(Java Archive)文件。简单地说,一个JAR文件就是一堆Java类,它们已被压缩到一个已经从* .zip重命名为* .jar的文件中。

要获取Commons Logging JAR文件,您可以从Apache Commons download site下载它。您将需要二进制版本,而不是源版本。如果你碰巧下载了1.1.1版(例如),你应该解压缩commons-logging-1.1.1-bin.zip文件。在里面,你会找到一个名为commons-logging-1.1.1.jar的文件。将此JAR文件复制到安装Tomcat软件的lib目录。在注意到这个新文件之前,可能需要重新启动Tomcat。

希望下次您尝试使用该应用程序时,您可能会或可能不会收到另一个错误,指示无法找到另一个类。在这种情况下,我欢迎您来到JAR狩猎的精彩世界! :)希望应用程序不会需要太多的库以及Commons Logging以外的库,但我们会看到(考虑到你正在尝试运行Nutch,我可以预见它需要Lucene,所以要做好准备)。 / p>

与Nutch玩得开心!

答案 1 :(得分:1)

对我而言,它告诉我无法找到报告为解析错误本身的记录器。我想,有点奇怪或无法用来表达它的方式。无论如何,我认为您需要将Commons Logging .jar添加到您的库(WEB-INF/lib)并重新启动Tomcat然后它应该可以工作。

此外,您的Tomcat似乎很古老,如果可能的话我建议使用5.5.x或6.x.

答案 2 :(得分:0)

如果您发现应用程序中存在必需的.jar,则问题的解决方案可能是:

  1. 停止Tomcat
  2. 转到%TOMCAT_HOME%/删除里面的所有内容
  3. 这个'work'文件夹,正如其名称所示,包含用于工作的类,有时可以出于任何原因阻止访问其中一些文件。当我得到这样的信息时,这是第一件事。大部分时间都有效......