HTTP 状态 500 - 处理程序处理失败;嵌套异常是 java.lang.UnsatisfiedLinkError: 找不到指定的模块

Posted

技术标签:

【中文标题】HTTP 状态 500 - 处理程序处理失败;嵌套异常是 java.lang.UnsatisfiedLinkError: 找不到指定的模块【英文标题】:HTTP Status 500 - Handler processing failed; nested exception is java.lang.UnsatisfiedLinkError: The specified module could not be found 【发布时间】:2018-05-05 23:56:18 【问题描述】:

我正在尝试使用 tess4j 实现 OCR。当我在 Eclipse 中运行应用程序时,它工作正常。但是当我将 WAR 文件部署到 tomcat 或 Jboss 时,我遇到了错误

HTTP 状态 500 - 处理程序处理失败;嵌套异常是 java.lang.UnsatisfiedLinkError:指定的模块不能是 找到了。

输入异常报告

消息处理程序处理失败;嵌套异常是 java.lang.UnsatisfiedLinkError: 指定的模块不能 找到了。

描述服务器遇到阻止它的内部错误 完成此请求。

异常

org.springframework.web.util.NestedServletException: 处理程序 处理失败;嵌套异常是 java.lang.UnsatisfiedLinkError: 找不到指定的模块。

org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1303) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:977) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 根本原因

java.lang.UnsatisfiedLinkError: 指定的模块不能 找到了。

com.sun.jna.Native.open(原生方法) 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.(Library.java:147) com.sun.jna.Native.loadLibrary(Native.java:412) com.sun.jna.Native.loadLibrary(Native.java:391) net.sourceforge.tess4j.util.LoadLibs.getTessAPIInstance(LoadLibs.java:75) net.sourceforge.tess4j.TessAPI.(TessAPI.java:42) net.sourceforge.tess4j.Tesseract.init(Tesseract.java:367) net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:280) net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:212) net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:196) org.infotech.jdol.pdfjs.Utils.doOCRSample(Utils.java:77) org.infotech.jdol.pdfjs.Utils.imageAsPDF(Utils.java:54) org.infotech.jdol.pdfjs.controllers.PdfViewerController.getViewer(PdfViewerController.java:25) sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:111)

【问题讨论】:

【参考方案1】:

我只为我在这里发布的 apache 实现了

在您的 apache tomcat 中创建如下所示的文件夹结构。 apache-tomcat-8.0.39\temp\tess4j\win32-x86-64

将以下 dll 粘贴到您的 win32-x86-64 文件夹中

    gsdll64.dll liblept174.dll libtesseract305.dll

注意:我使用的eclipse和java都是64位的

下面是添加的dll路径截图

image link

【讨论】:

以上是关于HTTP 状态 500 - 处理程序处理失败;嵌套异常是 java.lang.UnsatisfiedLinkError: 找不到指定的模块的主要内容,如果未能解决你的问题,请参考以下文章

HTTP状态500-请求处理失败;嵌套的异常是java.lang.NullPointerException?

使用dubbo引用和发布服务时出现的异常:HTTP状态500 - 请求处理失败; 嵌套异常是com.alibaba.dubbo.rpc.RpcException:无法在服务cn.e3mall.serv

HTTP 状态 500 - 请求处理失败

HTTP 状态 500 - 意外令牌:,靠近第 1 行,第 129 列

IBM worklight:7.1:失败。状态:500,响应:服务器无法处理来自应用程序的请求。请稍后再试

ASP.NET Core 无法在 IIS 下运行:HTTP 错误 500.0 - ANCM 进程内处理程序加载失败