Я пытаюсь использовать tesseract-ocr в своем весеннем веб-приложении в среде Linux (linux mint — Ubuntu 14.04), используя сервер tomcat 7. Но я получаю сообщение об ошибке:
java.lang.UnsatisfiedLinkError: Unable to load library 'tesseract': libtesseract.so: cannot open shared object file: No such file or directory
com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:145)
com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:188)
com.sun.jna.Library$Handler.<init>(Library.java:123)
com.sun.jna.Native.loadLibrary(Native.java:255)
com.sun.jna.Native.loadLibrary(Native.java:241)
net.sourceforge.tess4j.TessAPI.<clinit>(TessAPI.java:45)
net.sourceforge.tess4j.Tesseract.init(Tesseract.java:283)
net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:219)
net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:168)
net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:152)
Я использую следующий код:
Tesseract instance = Tesseract.getInstance();
String result = instance.doOCR(file);
Я использую maven для предоставления зависимостей для tess4j как:
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>1.3.0</version>
</dependency>
Кроме того, ранее я успешно установил tesseract на свой компьютер с Linux, используя команду:
sudo apt-get install tesseract-ocr.
Важно отметить, что я могу запускать tesseract из аргументов командной строки, а также из автономного java-проекта с использованием Tess4j. Это дает мне правильный результат в обоих случаях.
Но при работе с сервером tomcat я получаю указанную выше ошибку. У меня есть файл libtesseract.so.3
, расположенный по адресу /usr/lib
. Но почему-то tomcat не может найти путь установки tesseract.
Чего я не могу понять, так это того, что при запуске его как отдельного приложения оно работает нормально и может находить файлы tesseract, но при работе с веб-сервера оно не может найти файлы tesseract.