[mod_python] Problem in executing java program using mod_python.

David Fraser davidf at sjsoft.com
Tue Aug 16 08:39:58 EDT 2005


We use PyLucene too and its fantastic, but just be aware that if you run 
Apache in multi-threaded mode (e.g. under Windows) there are conflicts 
with the gcj threading (for which there are also workarounds, mainly 
running a separate process for PyLucene)

Julien wrote:

>Why not using PyLucene ? http://pylucene.osafoundation.org/
>
>It's a SWIG python port of Java Lucene, and it works perfeclty with
>mod_python (we use it every day here at work)
>
>On Tue, 2005-08-16 at 15:53 +0530, Manjeet Chaudhary wrote:
>  
>
>>Hello All
>>
>>I am using mod_python and Lucene for searching of Arabic Text from an 
>>Index created using Lucene+Java.
>>I am facing some problems in running "java" command using mod_python.
>>
>>1.   I am trying to run java program using "os.system" command.
>>    Check = os.system("java ..........")
>>
>>2.   The command returns me a value of 256.
>>    i.e Check = 256
>>
>>3.   I am not able to figure it out why that java program is not being 
>>executed properly.
>>
>>4.   For the java program i have set the classpath and compiling and 
>>running that program using the classpath.
>>
>>    export CLASSPATH = 
>>/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/lucene-1.4.3.jar 
>>:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/PDFBox-0.6.7a.jar 
>>:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/log4j-1.2.8.jar 
>>:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/tm-extractors-0.4.jar 
>>:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/ArabicAnalyzer-1.0b.jar 
>>:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/commons-collections-3.1.jar
>>
>>    javac -classpath $CLASSPATH:. SearchFiles.java
>>
>>    java -classpath $ClASSPATH:. SearchFiles
>>
>>5.   SearchFiles program is running properly if i run it from shell.
>>
>>So please help me and tell where i am going wrong.
>>I have attached the copy of code at the end .
>>
>>Thank you
>>Manjeet Chaudhary
>>
>>
>>
>>#!/usr/bin/env python
>>"""
>>#-------------------------------------------------------------------------------------------------------
>>#Name:       ar_search.py
>>#Version:    1.0
>>#Purpose:    Searching for Infoviewer
>>#Author:     Alok Khandelwal
>>#Created:    10-08-2005
>>#Licence:    Infogrid Pacific EULA
>>#--------------------------------------------------------------------------------------------------------
>>#Revision History
>>#--------------------------------------------------------------------------------------------------------
>>
>>#----------------Different modules required are imported 
>>here-------------------
>>"""
>>import cgitb,cgi,sys
>>cgitb.enable()
>>import os
>>from os.path import join, abspath
>>from mod_python import apache,util,Session
>>"""
>>#----------------End of importing 
>>modules----------------------------------------
>>
>>
>>def search(req):
>>
>>    """This part takes Arabic keyword from req variable and write that 
>>keyword into a temp file. This temp file will be opened by java program 
>>and that program will take that value and search for the variable in the 
>>index file.
>>Java program will store the result in results.txt file"""
>>
>>    The_Form = util.FieldStorage(req)
>>    for name in The_Form.keys():
>>        #--------Checking for the selected Fields and turning those flag 
>>on--------
>>        if name == 'search_contents':
>>            value=The_Form[name]
>>            value.encode('utf-8')
>>            f=open("/home/ajinkyan/cgi-bin/infoviewer/temp.txt","w")
>>            f.write(value)
>>            f.close()
>>
>>            try:
>>                command = "export 
>>CLASSPATH=/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/lucene-1.4.3.jar:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/PDFBox-0.6.7a.jar:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/log4j-1.2.8.jar:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/tm-extractors-0.4.jar:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/ArabicAnalyzer-1.0b.jar:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/commons-collections-3.1.jar"
>>                import os
>>                os.system(command)
>>                command = "java -classpath 
>>$CLASSPATH:/home/ajinkyan/cgi-bin/infoviewer SearchFiles"
>>                check=os.system(command)
>>                req.write("\ncheck = " + str(check))
>>                f  = open(  
>>"/home/ajinkyan/cgi-bin/infoviewer/results.txt","r")
>>                result=f.read()
>>                req.write(result)
>>            except:
>>
>>                req.write("\n")
>>                req.write(str(sys.exc_type))
>>                req.write("\n")
>>                req.write(str(sys.exc_value))
>>
>>
>>
>>____________________________________________________________________________________________________________________________
>>
>># After executing the os.system command the value returned in check is 
>>maximum times 256 or some thing near 32000 .
>>
>># Java program is running independently without any errors. Only when it 
>>is called using os.system it doesn't run .
>>
>># The Java program is as follows
>>
>>___________________________________________________________________________________________________________________________
>>
>>
>>/**
>>* @Name   : SearchFiles.java
>>* @Version: 1.0
>>* @Author : Alok Khandelwal
>>* @Created: 2 August 2005
>>* @Purpose: Searching in index for arabic contents
>>* @Copyright:(c)2004 by Infogrid Pacific Pte. Ltd.
>>* @Licenece :Infogrid Pacific Eula
>>*/
>>
>>
>>
>>
>>import org.apache.lucene.search.Searcher;
>>import org.apache.lucene.search.IndexSearcher;
>>import org.apache.lucene.search.Query;
>>import org.apache.lucene.search.Hits;
>>import org.apache.lucene.queryParser.QueryParser;
>>import gpl.pierrick.brihaye.aramorph.lucene.ArabicStemAnalyzer;
>>import java.io.*;
>>import org.apache.lucene.document.Document;
>>class SearchFiles
>>{
>>    public static void main(String[] args)
>>    {
>>        try
>>        {
>>            FileInputStream fis = new FileInputStream(new File ( 
>>"/home/ajinkyan/cgi-bin/infoviewer/temp.txt"));
>>            BufferedReader in = new BufferedReader(new 
>>InputStreamReader(fis,"UTF8"));
>>            char [] buf = new char[80];
>>            int numRead;
>>            numRead=in.read(buf,0,80);
>>            String field="\"";
>>            for(int k=0;k<numRead;k++)
>>            {
>>                field=field+buf[k];
>>            }
>>            field=field+"\"";
>>            FileOutputStream fos = new FileOutputStream(new File ( 
>>"/home/ajinkyan/cgi-bin/infoviewer/results.txt"));
>>            BufferedWriter out = new BufferedWriter(new 
>>OutputStreamWriter(fos,"UTF8"));
>>            Searcher searcher = new 
>>IndexSearcher("/home/ajinkyan/cgi-bin/infoviewer/index_arabic");
>>            try
>>            {
>>                    Query query = QueryParser.parse(field, "contents", 
>>new ArabicStemAnalyzer());
>>                    Hits hits = searcher.search(query);
>>                    String output="Total match document = \n";
>>                    for(int j=0;j<hits.length();j++)
>>                    {
>>                        Document doc = hits.doc(j);
>>                    //    System.out.print(hits.score(j)+"  ");
>>                        output = output +"\n"+ doc.get("filename");
>>                    }
>>                    out.write(output);
>>                    out.write("\n");
>>            }
>>            catch(Exception e)
>>            {
>>                out.write("Parser Error");
>>                out.write("\n");
>>
>>            }
>>            searcher.close();
>>            out.close();
>>        }
>>        catch (Exception e)
>>        {
>>            String s= " caught a " + e.getClass() +
>>             "\n with message: " + e.getMessage();
>>        }
>>    }//end of main
>>}//end of SerchFiles
>>_______________________________________________
>>Mod_python mailing list
>>Mod_python at modpython.org
>>http://mailman.modpython.org/mailman/listinfo/mod_python
>>
>>    
>>



More information about the Mod_python mailing list