I have found an error in the web.xml file, however, this DID NOT fix the
problem.  Inside the web.xml file, there is the following snippet:

<init-param>
                        <description>
                        Default field used in standard Lucene QueryParser used 
in UserQuery
tag</description>
                        <param-name>defaultStandardQueryParserField</param-name>
                        <param-value>jobDescription</param-value>
</init-param>

the <param-value> here should be IMHO "description", as neither the
query.xsl file, nor index.jsp file contain any tags/values called
"jobDescription", only "description".  I hope the contributors to the Lucene
project take note of this, or please show me the error of my ways.  Having
said that, as I mentioned earlier, despite making this correction, I am
still getting the above "NullPointerException".  Can anyone see where I am
going wrong?

Thanks again to all who reply.
Sincerely;
Fayyaz

syedfa wrote:
> 
> Dear fellow Java developers:
> 
> I am trying to run the XML Query Parser example that comes with Lucene 3.0
> source distribution.  I have the application structured identical to the
> one you download, and I am trying to run it in eclipse.  When I launch the
> application, fill out the form that appears on index.jsp, and then submit
> it to search the index, I get the following error 505:
> 
> javax.servlet.ServletException: Error processing query
> 
> org.apache.lucene.xmlparser.webdemo.FormBasedXmlQueryDemo.doPost(FormBasedXmlQueryDemo.java:124)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> 
> 
> root cause 
> 
> java.lang.NullPointerException
> 
> org.apache.lucene.xmlparser.webdemo.FormBasedXmlQueryDemo.doPost(FormBasedXmlQueryDemo.java:107)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
>       javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> 
> 
> I absolutely have no idea why this is happening, as I even structured the
> package of the servlet in eclipse identical to the way it is in the
> example.  I have attached my entire servlet, "FormBasedXmlQueryDemo"
> below:
> 
> public class FormBasedXmlQueryDemo extends HttpServlet {
>       private static final long serialVersionUID = 1L;
>     
>       private QueryTemplateManager queryTemplateManager;
>       private CorePlusExtensionsParser xmlParser;
>       private IndexSearcher searcher;
>       private Analyzer analyzer = new
> StandardAnalyzer(org.apache.lucene.util.Version.LUCENE_CURRENT);
>       
>     public FormBasedXmlQueryDemo() {
>         super();
>         // TODO Auto-generated constructor stub
>     }
> 
>     @Override
>       public void init(ServletConfig config) throws ServletException {
>               // TODO Auto-generated method stub
>               super.init(config);
>               
>               try{
>                       
>                       openExampleIndex();
>                       
>                       String xslFile=config.getInitParameter("xslFile");
>                       String defaultStandardQueryParserField =
> config.getInitParameter("defaultStandardQueryParserField");
>                       queryTemplateManager = new
> QueryTemplateManager(getServletContext().getResourceAsStream("/WEB-INF/" +
> xslFile));
>                       xmlParser = new
> CorePlusExtensionsParser(defaultStandardQueryParserField, analyzer);
>                       
>               }catch(Exception e){
>                       throw new ServletException("Error loading query 
> template", e);
>               }
>       }
> 
>       protected void doGet(HttpServletRequest request, HttpServletResponse
> response) throws ServletException, IOException {
> 
>       }
> 
>       @Override
>       protected void doPost(HttpServletRequest request, HttpServletResponse
> response) throws ServletException, IOException {
>               // TODO Auto-generated method stub
>               
>               Properties completedFormFields = new Properties();
>               Enumeration pNames = request.getParameterNames();
>               
>               while (pNames.hasMoreElements()){
>                       
>                       String propName = (String) pNames.nextElement();
>                       String value = request.getParameter(propName);
>                       
>                       if ((value != null) && (value.trim().length()>0)){
>                               completedFormFields.setProperty(propName, 
> value);
>                       }
>               }
>               
>               try{
>                       org.w3c.dom.Document xmlQuery =
> queryTemplateManager.getQueryAsDOM(completedFormFields);                      
>                       Query query = 
> xmlParser.getQuery(xmlQuery.getDocumentElement());
>                       TopDocs topDocs = searcher.search(query, 10);
>                       
>                       if (topDocs != null) {
>                               ScoreDoc[] sd = topDocs.scoreDocs;
>                               Document[] results = new Document[sd.length];
>                               
>                               for(int i = 0; i < results.length; i++){
>                                       
>                                       results[i] = searcher.doc(sd[i].doc);
>                                       request.setAttribute("results", 
> results);
>                               }
>                       }
>                       
>                       RequestDispatcher dispatcher =
> getServletContext().getRequestDispatcher("/index.jsp");
>                       dispatcher.forward(request, response);
>               }
>               catch(Exception e){
>                       throw new ServletException("Error processing query", e);
>               }
>       }
>       
>       private void openExampleIndex() throws CorruptIndexException, 
> IOException
> {
>               
>               
>               RAMDirectory rd = new RAMDirectory();
>               IndexWriter writer = new IndexWriter(rd, analyzer,
> IndexWriter.MaxFieldLength.LIMITED);
>               InputStream dataIn =
> getServletContext().getResourceAsStream("/WEB-INF/data.tsv");
>               BufferedReader br = new BufferedReader(new 
> InputStreamReader(dataIn));
>               String line = br.readLine();
>               
>               while (line != null){
>                       
>                       line = line.trim();
>                       if (line.length() > 0){
>                               
>                               StringTokenizer st = new StringTokenizer(line, 
> "\t");
>                               Document doc = new Document();
>                               doc.add(new 
> Field("location",st.nextToken(),Field.Store.YES,
>                                               Field.Index.ANALYZED_NO_NORMS));
>                               doc.add(new 
> Field("salary",st.nextToken(),Field.Store.YES,
>                                               Field.Index.ANALYZED_NO_NORMS));
>                               doc.add(new 
> Field("type",st.nextToken(),Field.Store.YES,
>                                               Field.Index.ANALYZED_NO_NORMS));
>                               doc.add(new 
> Field("description",st.nextToken(),Field.Store.YES,
>                                               Field.Index.ANALYZED));
>                               writer.addDocument(doc);
>                       }
>                       
>                       line = br.readLine();
>               }
>               
>               writer.close();
>       }
> 
> }
> 
> 
> 
> When I was tracing through the code, it appears that it was throwing the
> exception just as it tried to process the line:
> 
> TopDocs topDocs = searcher.search(query, 10);
> 
> Does anyone know where I am going wrong?  
> 
> Thanks in advance to all who reply.
> 

-- 
View this message in context: 
http://old.nabble.com/Need-help-with-XML-Query-Parser-example-in-Lucene-3.0-tp26896711p26897607.html
Sent from the Lucene - Java Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to