使用Lucene演示类的Servlet异常

时间:2013-02-01 02:16:34

标签: java servlets lucene

我只是试图从servlet调用基本的Lucene演示类,并且得到了这个异常:

  

SEVERE:Servlet SearcServlet的Servlet.service()引发了异常   java.lang.ClassNotFoundException:org.apache.lucene.store.Directory     在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)     在org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)     在servlet.SearcServlet.doPost(SearcServlet.java:50)

我的servlet方法:

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    PrintWriter out=response.getWriter();
    try {
        String[] arguments = new String[] {"123"};
        SearchFiles.main(arguments);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

当我从另一个Java类调用它时,搜索正在执行,但是当我从servlet执行此操作时,我得到了这个异常。我正在使用lucene演示搜索类,没有包含其他功能。

1 个答案:

答案 0 :(得分:1)

java.lang.ClassNotFoundException与Java Classpath有关。 {J}尝试在运行时动态加载类时会出现ClassNotFoundException,如果在类路径中找不到该类,则会抛出java.lang.ClassNotFoundException

由于您使用的是名为Apache Lucene的第三方API,因此您需要将所有必需的 jar 文件放到应用程序类路径中。

对于Web应用程序,默认类路径为 webapp WebContent 目录下的/WEB-INF/lib目录。

在那里复制所有必需的 jar 文件,eclipse会照顾好一切。