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]