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