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