我正在按照这里的教程进行操作:
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。
有人知道这是怎么回事吗?
版本/信息:
坚果 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 安装似乎不包含此类库。从您收到的错误来看,您似乎缺少 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 玩得开心!
关于java - 在 Tomcat 上运行 Java .war 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/567810/