Integração JNI e Tomcat

Olá, estou precisando urgentemente que alguém me ajude com o seguinte problema:

Tenho uma aplicação em C que trabalha com reconhecimento de imagens. Essa aplicação é acessada muito bem em java usando o JNI e utiliza algumas bibliotecas que são definidas na variavel de ambiente PL_LIBRARY_PATH no Linux

Todavia preciso deixar isso disponível em uma aplicação WEB usando o Struts.

Criei uma classe Action que chama essa classe JNI e é retornada uma mensagem de erro dizendo que as bibliotecas necessarias dessa aplicação não foram encontradas.

Como faço para reconhecer essas bibliotecas pelo Tomcat?

bem-vindo ao Portal Java… coloque suas bibliotecas na pasta lib da web app

Então, eu copiei as bibliotecas para a pasta web app, e pastas lib do tomcat, mas não reconhece. o codigo do JNI é:

class CadastroPropriedade {
public native int displayCadastroPropriedade(int userID,int regionID,
						 int ULxdegrees,int ULxminutes,float ULxseconds,
						 int ULydegrees,int ULyminutes,float ULyseconds,
						 int LRxdegrees,int LRxminutes,float LRxseconds,
						 int LRydegrees,int LRyminutes,float LRyseconds);
    static {
	System.loadLibrary("ndvi");
	System.loadLibrary("tiff");
    }
    
    public static void main(String[] args) {
	CadastroPropriedade cp = new CadastroPropriedade();
   	int i = cp.displayCadastroPropriedade(9,2,
					      49,10, (float)20.42,
					      20,45, (float)30.86,
					      48,56, (float)32.89,
					      21,22, (float)45.21);
	System.out.println("Calculou?: " + i);
    }
}

no konsole ele funciona muito bem, mas quando executado pela classe Action:

public class TesteAction extends Action {
  public ActionForward execute( ActionMapping mapping,
                                ActionForm form,
                                HttpServletRequest request,
                                HttpServletResponse response) throws Exception {
  		try{
  			CadastroPropriedade prop = new CadastroPropriedade();
		}catch(Exception e){
			return mapping.findForward(IConstants.FAILURE_KEY);
		}
		return mapping.findForward(IConstants.SUCCESS_KEY);
  }
}

ele retorna a seguinte mensagem de erro:

.


exception 

javax.servlet.ServletException: Servlet execution threw an exception


root cause 

java.lang.UnsatisfiedLinkError: no ndvi in java.library.path
        java.lang.ClassLoader.loadLibrary(ClassLoader.java:1517)
        java.lang.Runtime.loadLibrary0(Runtime.java:788)
        java.lang.System.loadLibrary(System.java:834)
        CadastroPropriedade.<clinit>(Unknown Source)
        TesteAction.execute(Unknown Source)
        org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
        org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
        org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
        org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

lembrando que foi setado no meu bashrc seguinte variavel:
export LD_LIBRARY_PATH=./sharedlib

onde sharedlib é a pasta que contem os arquivos:
libndvi.so
libtiff.so

Experimenta usar o System.load("/caminho/fisico/da/lib.so") então vc pode usar o método getRealPath do ServletContext para pega o caminho da so