Looks like the Lucene libraries are not in your classpath.

On Mar 11, 2007, at 12:08 AM, ashwin kumar wrote:

hi all my name is ashwin i am trying to connect my servlet front end to my
backend lucene search program

these r the two programs


<<frontend servlet program>>

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.lang.*;

//import java.io.*;
import java.io.FileReader;
import java.io.Reader;
import java.util.Date;
//import frontend.mainpage;
import java.lang.*;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Searchable;
import org.apache.lucene.search.Searcher;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.Query;

public class mainpage extends HttpServlet
{
   static int numRequest=0;

   public void init(ServletConfig config)throws ServletException
   {
       super.init(config);
   }



public void doGet(HttpServletRequest req,HttpServletResponse res) throws
ServletException,IOException
   {
       try
       {
           res.setContentType("text/html");


           PrintWriter out=res.getWriter();




            out.println("<html><head><title>testing</title></head>");

           out.println("<body>");

            out.println("<h1>Distrubuted Desktop Search using
lucene</h1>");

             TextFileIndexer index=new TextFileIndexer(out);

           out.println("<br><form method=\"post\">");

out.println("<input type=\"text\" name =\"toSearch\" size=100
maxlength=100>");

           out.println(" <input type=\"submit\" name=\"searchbutton\"
value=\"search\"><br>");

           out.println("</form>");

           out.println("</body></html>");
           out.close();
       }
       catch(Exception e)
       {
           e.printStackTrace();
       }


   }

   public String getServletInfo()
   {
       return "good";
   }

public void doPost(HttpServletRequest req,HttpServletResponse res)throws
ServletException, IOException
   {
       try
       {
           res.setContentType("text/html");

           String searchString = req.getParameter("toSearch");

           PrintWriter out=res.getWriter();

           out.println("<head><title>testing</title></head>");

           out.println("<body>");

           out.println("<h1>"+searchString+"</h1>");

           TextFileMatch match=new TextFileMatch(searchString,out);

           out.println("</body></html>");

           out.close();
       }
       catch(Exception e)
       {
           e.printStackTrace();
       }

   }
   public void destroy()
   {

   }
}


<<backend lucene search program>>

import java.io.*;
import java.io.FileReader;
import java.io.Reader;
import java.util.Date;
//import frontend.mainpage;
import java.lang.*;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Searchable;
import org.apache.lucene.search.Searcher;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.Query;

class TextFileMatch
{
   public TextFileMatch(String searchString,PrintWriter out)throws
Exception
   {
         Searcher searcher = new IndexSearcher("C:\\luceneIndex");
        Analyzer analyzer = new StandardAnalyzer();

        String toSearch=searchString;
        String buffer=new String("");

        System.out.println("\n"+toSearch+"\n");

Query query = QueryParser.parse (toSearch,"content",analyzer);
         out.println("Searching for: " + query.toString("text"));
         Hits hits = searcher.search(query);
System.out.println("Number of matching documents = " + hits.length
());
          for (int i = 0; i < hits.length(); i++)
           {
            Document doc = hits.doc(i);
            //buffer=buffer+"\n"+"file :"+doc.get("path")+"\n";
out.println("File: " + doc.get("path") + " , score: " +
hits.score(i));
         }
   }
}

class TextFileIndexer
{
public TextFileIndexer(PrintWriter out) throws Exception
{

   out.println("*************");
  File fileDir= new File("C:\\files");

  File indexDir= new File("C:\\luceneIndex");

  Boolean flag=false;

  Analyzer luceneAnalyzer = new StandardAnalyzer();


IndexWriter indexWriter = new IndexWriter (indexDir,luceneAnalyzer,true);

  File[] textFiles= fileDir.listFiles();

  long startTime = new Date().getTime();

  System.out.println("\n the total number of files in the directory is
"+textFiles.length+"\n");

  for(int i = 0; i < textFiles.length; i++)
  {

      if(textFiles[i].getName().endsWith(".txt"))
      {
           System.out.println("\n File " +
textFiles[i].getCanonicalPath()+" is being indexed");
        Reader textReader = new FileReader(textFiles[i]);
        Document document = new Document();
        document.add(Field.Text("content",textReader));
        document.add(Field.Text("path",textFiles[i].getPath()));
        indexWriter.addDocument(document);

      }
      else if(textFiles[i].getName().endsWith(".pdf"))
      {


      }

  }

  indexWriter.optimize();
  indexWriter.close();
  long endTime = new Date().getTime();

System.out.println("It took " + (endTime - startTime) + " milliseconds to
create an index for the files in the directory "+ fileDir.getPath());
 }
}



<<note>>
all programs and class files are inside a same folder

the error msg i am getting is

HTTP Status 500 -
------------------------------

*type* Exception report

*message*

*description* *The server encountered an internal error () that prevented it
from fulfilling this request.*

*exception*

javax.servlet.ServletException: Servlet execution threw an exception
        filters.ExampleFilter.doFilter(ExampleFilter.java:101)

*root cause*

java.lang.NoClassDefFoundError: org/apache/lucene/analysis/Analyzer
        mainpage.doGet(mainpage.java:54)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        filters.ExampleFilter.doFilter(ExampleFilter.java:101)

*note* *The full stack trace of the root cause is available in the Apache
Tomcat/5.5.8 logs.*
------------------------------
Apache Tomcat/5.5.8
pls help me debug this error

thanks
regards
ashwin

------------------------------------------------------
Grant Ingersoll
http://www.grantingersoll.com/
http://lucene.grantingersoll.com
http://www.paperoftheweek.com/



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to