tomcat - java.lang.UnsatisfiedLinkError : Access denied. 使用 JNI

标签 tomcat permissions java-native-interface windows-server-2008 tesseract

我正在努力尝试通过 Tess4J 使一个使用 Tesseract 的 Java servlet 工作。项目。当库主类 (TessAPI) 初始化时,servlet 停止并出现以下异常:

java.lang.UnsatisfiedLinkError: Access is denied.

    com.sun.jna.Native.open(Native Method)
    com.sun.jna.Native.open(Native.java:1759)
    com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:260)
    com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:398)
    com.sun.jna.Library$Handler.<init>(Library.java:147)
    com.sun.jna.Native.loadLibrary(Native.java:412)
    com.sun.jna.Native.loadLibrary(Native.java:391)
    net.sourceforge.tess4j.TessAPI.<clinit>(Unknown Source)
    it.sampleProj.DocumentVisualizer.startOCRConfidence(DocumentVisualizer.java:301)
    it.sampleProj.DocumentVisualizer.startRecognition(DocumentVisualizer.java:220)
    it.sampleProj.DocumentIdentifier.recognizeDocument(DocumentIdentifier.java:147)
    it.sampleProj.DocumentIdentifier.startDocumentSearch(DocumentIdentifier.java:89)
    it.sampleProj.DocumentRecognizerServlet.doPost(DocumentRecognizerServlet.java:106)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

我在 Windows 2008 Server R2 64 位上使用 Apache Tomcat8 64 位、JDK 7.0.60 64 位和 Tesseract.exe 以及 64 位的相关 .dll 文件。 这个错误听起来像是权限问题,我不确定 Tomcat 运行时使用的用户帐户是什么。无论如何,我已经授予了对包含在 tomcat 的 lib 文件夹中的两个 .ddl 文件的所有权限(libtesseract302.dll 和 liblept168.dll)

有没有一种方法可以获取有关访问被拒绝问题感兴趣的资源的更多信息?

最佳答案

最后问题是32-64位不匹配导致的。

正如我所说,Tomcat、JVM、Tesseract 和 OS 都是 64 位版本。但是 war 是在 32 位build设置下产生的。 为 64 位重新创建 .war 为我解决了这个问题。

关于tomcat - java.lang.UnsatisfiedLinkError : Access denied. 使用 JNI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24206485/

相关文章:

java - Hibernate 5.0.1 最后的问题;

java - Tomcat - 异步 HTTP 调用超慢与 Jetty

php - Laravel 5 中间件 "Owner"?

安卓预览 M : activity recreates after permission grant

linux - jinja2.exceptions.TemplateSyntaxError : expected token ',' , 得到 'integer' (支持十六进制、八进制和二进制整数文字)

java - 这个方法jboolean(JNICALL *ExceptionCheck)(JNIEnv *env)在哪里定义的?

java - SWIG支持void * C返回类型

tomcat - 在 Tomcat 6 启动时创建的空 juli.yyyy-MM-dd.log

java - Spring Security 的域权限

android - 方法签名与实际调用不匹配