Tomcat solr示例演示,无法确定java文件夹的放置位置

Tomcat solr示例演示,无法确定java文件夹的放置位置,tomcat,solr,demo,Tomcat,Solr,Demo,我按照本教程在tomcat上安装(多个)solr实例 现在我想设置这个演示,但它不工作 我构建了演示中提到的dw.war,现在我发现了这个错误 java.lang.NoClassDefFoundError: Could not initialize class org.apache.commons.httpclient.HttpClient org.apache.dwexample.servlet.DWServlet.sendGetCommand(DWServlet.java:714

我按照本教程在tomcat上安装(多个)solr实例

现在我想设置这个演示,但它不工作

我构建了演示中提到的dw.war,现在我发现了这个错误

java.lang.NoClassDefFoundError: Could not initialize class org.apache.commons.httpclient.HttpClient
    org.apache.dwexample.servlet.DWServlet.sendGetCommand(DWServlet.java:714)
    org.apache.dwexample.servlet.DWServlet.processSubmitQuery(DWServlet.java:634)
    org.apache.dwexample.servlet.DWServlet.doGet(DWServlet.java:120)
    org.apache.dwexample.servlet.DWServlet.doPost(DWServlet.java:782)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
认为这是/tomcat/lib目录中的错误,将commons-httpclient-3.0.jar复制到/tomcat/lib目录中,并执行了以下操作:

chcon -R -h -t httpd_sys_content_t /usr/share/apache-tomcat-6.0.18/lib/
现在我有两个错误:

java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:65)
    org.apache.dwexample.servlet.DWServlet.sendPostCommand(DWServlet.java:663)
    org.apache.dwexample.servlet.DWServlet.processSubmitCommand(DWServlet.java:596)
    org.apache.dwexample.servlet.DWServlet.processIndexCommand(DWServlet.java:557)
    org.apache.dwexample.servlet.DWServlet.processCommit(DWServlet.java:225)
    org.apache.dwexample.servlet.DWServlet.doGet(DWServlet.java:100)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
    org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:65)
    org.apache.dwexample.servlet.DWServlet.sendPostCommand(DWServlet.java:663)
    org.apache.dwexample.servlet.DWServlet.processSubmitCommand(DWServlet.java:596)
    org.apache.dwexample.servlet.DWServlet.processIndexCommand(DWServlet.java:557)
    org.apache.dwexample.servlet.DWServlet.processCommit(DWServlet.java:225)
    org.apache.dwexample.servlet.DWServlet.doGet(DWServlet.java:100)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory
org.apache.commons.httpclient.httpclient.(httpclient.java:65)
org.apache.dwexample.servlet.DWServlet.sendPostCommand(DWServlet.java:663)
org.apache.dwexample.servlet.DWServlet.processSubmitCommand(DWServlet.java:596)
org.apache.dwexample.servlet.DWServlet.processIndexCommand(DWServlet.java:557)
org.apache.dwexample.servlet.DWServlet.processCommit(DWServlet.java:225)
org.apache.dwexample.servlet.DWServlet.doGet(DWServlet.java:100)
javaservlet.http.HttpServlet.service(HttpServlet.java:617)
javaservlet.http.HttpServlet.service(HttpServlet.java:717)
根本原因
java.lang.ClassNotFoundException:org.apache.commons.logging.LogFactory
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
org.apache.commons.httpclient.httpclient.(httpclient.java:65)
org.apache.dwexample.servlet.DWServlet.sendPostCommand(DWServlet.java:663)
org.apache.dwexample.servlet.DWServlet.processSubmitCommand(DWServlet.java:596)
org.apache.dwexample.servlet.DWServlet.processIndexCommand(DWServlet.java:557)
org.apache.dwexample.servlet.DWServlet.processCommit(DWServlet.java:225)
org.apache.dwexample.servlet.DWServlet.doGet(DWServlet.java:100)
javaservlet.http.HttpServlet.service(HttpServlet.java:617)
javaservlet.http.HttpServlet.service(HttpServlet.java:717)
我很想知道如何解决这些错误。对日志输出进行催化处理并没有提供多少依据

干杯


Ke

您的第一个修复是正确的,您只是错过了另一个库,即。另外,把罐子和你的LIB放在一起。注意,之后可能会有更多的依赖项,它只会在第一个错误时停止。你确定用一堆罐子下载的软件包中没有“lib”文件夹吗?

是的,这对我帮助很大。它是httpclient和loggin依赖项。我还遇到了一些问题,因为我在端口8081上使用了solr,而且solr的默认文件夹是/solr-example2/而不是/solr/as,因为我运行多个solr实例,所以我需要在DWServlet.java中将/solr/select/更改为/solr-example2/select/。在编译dw.war来处理这两件事之前,必须对DWServlet.java进行调整。但是现在它就像一个梦:)非常感谢你的帮助。