【发布时间】:2014-12-25 08:18:36
【问题描述】:
我必须搜索存储在数据库中的文档,这些文档中有图像,所以我使用 tess4j 来读取这些图像。 在带有 Eclipse 的 Windows 中,该项目在 tess4j 上运行良好,如果我在 windows7 中的 tomcat 6.35 中部署应用程序,项目运行良好,我可以使用 tess4j 正确搜索。 苏窗 1)我在tomcat lib/shared中添加jar文件 2) tessdata 和 dll 文件在存储库中,我在项目中调用它们。
在 linux 环境中我做同样的事情,我得到的第一个错误是
- Native library (linux-x86/libtesseract.so) not found in resource lib/shared/*
我将 libtesseract.so 和 tessdata 添加到此路径,现在我收到另一个错误:
java.lang.UnsatisfiedLinkError:查找函数“TessBaseAPICreate”时出错:/usr/lib/libtesseract.so.3.0.2:未定义符号:TessBaseAPICreate 在 com.sun.jna.Function.(Function.java:208) 在 com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:536) 在 com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:513) 在 com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:499) 在 com.sun.jna.Library$Handler.invoke(Library.java:199) 在 com.sun.proxy.$Proxy5.TessBaseAPICreate(未知来源) 在 net.sourceforge.tess4j.Tesseract.init(未知来源) 在 net.sourceforge.tess4j.Tesseract.doOCR(未知来源) 在 net.sourceforge.tess4j.Tesseract.doOCR(未知来源) 在 net.sourceforge.tess4j.Tesseract.doOCR(未知来源) 在 org.coin.bean.ged.Tess4j.extractTextFromImage(Tess4j.java:55) 在 org.coin.bean.ged.IndexDocument.CreateIndex(IndexDocument.java:158) 在 org.coin.bean.ged.searchlucene.setKeyword(searchlucene.java:40) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34) 在 org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428) 在 org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431) 在 org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283) 在 org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52) 在 org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101) 在 org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.coin.servlet.filter.PreventInjectionFilter.doFilter(PreventInjectionFilter.java:30) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602) 在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 在 java.lang.Thread.run(Thread.java:745) - --Erroring: batchId[7] message[java.lang.UnsatisfiedLinkError: Error looking up function 'TessBaseAPICreate': /usr/lib/libtesseract.so.3.0.2: undefined symbol: TessBaseAPICreate]
【问题讨论】:
-
你好,你解决了这个问题吗,我在Linux Centos中也遇到了同样的问题。谢谢!