【问题标题】:Problem running Java .war on Tomcat在 Tomcat 上运行 Java .war 时出现问题
【发布时间】:2009-02-20 00:03:40
【问题描述】:

我正在学习这里的教程:

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

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

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

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

【问题讨论】:

    标签: java tomcat nutch


    【解决方案1】:

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

    在 Java 中分发库的典型方法是通过 JAR(Java 存档)文件。简单来说,一个 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,因此请为此做好准备)。

    与 Nutch 玩得开心!

    【讨论】:

    • 很好的解释 - 我会试试看。
    • 错误 .jar api 最终在那里,但我把其他 jar 放在那里。似乎一点帮助都没有。感谢您的建议。
    【解决方案2】:

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

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

    【讨论】:

    • 这个答案让我继续前进。现在搜索没有返回任何结果,但至少出现了搜索页面。
    【解决方案3】:

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

    1. 停止 Tomcat
    2. 转到 %TOMCAT_HOME%/擦除里面的所有内容

    这个“工作”文件夹,顾名思义,包含用于工作的类,有时可以出于任何原因阻止对其中一些文件的访问。当我收到这样的消息时,这是第一件事。大多数时候它都有效......

    【讨论】:

      猜你喜欢
      • 2019-05-05
      • 2014-05-10
      • 2011-10-07
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-03
      相关资源
      最近更新 更多