Tess4j в Glassfish ОШИБКА: java.lang.NoSuchFieldError: RESOURCE_PREFIX

Я использую Tess4j 2.0.0 в oracle-glassfish3.1.1, исключение:

java.lang.NoSuchFieldError: RESOURCE_PREFIX в net.sourceforge.tess4j.util.LoadLibs.(LoadLibs.java:60) в net.sourceforge.tess4j.TessAPI.(TessAPI.java:40) в net.sourceforge.tess4j.Tesseract. init(Tesseract.java:360) в net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:273) в net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:256) в net.sourceforge.tess4j.Tesseract .doOCR(Tesseract.java:237) в net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:221) в cn.uxcard.util.CaptchaUtil.getCaptcha(CaptchaUtil.java:29) в cn.uxcard.util. HttpConnection.getCaptcha(HttpConnection.java:60) в cn.uxcard.util.HttpConnection.tryCaptcha(HttpConnection.java:78) в cn.uxcard.util.HttpConnection.login(HttpConnection.java:90) в cn.uxcard.util .HttpConnection.tryLogin(HttpConnection.java:121) в cn.uxcard.util.HttpConnection.init(HttpConnection.java:148) в cn.uxcard.util.HttpUtil.getConnection(HttpUtil.java:28) в cn.uxcard. исполнитель.Fetc hTodayConsumeRecordExecutor.run(FetchTodayConsumeRecordExecutor.java:29) в java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) в java .lang.Thread.run(Thread.java:662)

класс Glassfish загружает com.sun.jna.Platform, не используйте WEB-INF/lib/jna-4.1.0.jar, а используйте "bundle://185.0:1/com/sun/jna/Platform.class" . Могу ли я изменить порядок загрузки классов Glassfish, и если да, то как?


person hongwei    schedule 05.07.2015    source источник


Ответы (3)


Я столкнулся с той же проблемой при разработке веб-приложения с Tess4j, и после некоторых исследований выяснилось, что загрузчики классов в среде выполнения GlassFish Server следуют иерархии делегирования, как указано в этой ссылке >>

https://docs.oracle.com/cd/E19798-01/821-1752/6nmndgmhp/index.html

Соответственно, размещение файлов jar (tess4j.jar, jna.jar, jai_imageio.jar, commons-io-2.4.jar) в каталоге системных расширений (domain-dir/lib/ext) решило эту проблему. ошибка для меня.

Используемые версии:

• Сервер GlassFish 3.1.2.2 • jdk-7u80-windows-i586.exe • IDE NetBeans 8.0

person S. Isurika    schedule 09.10.2015

У меня возникла та же проблема, я переключил версию JRE на свою среду выполнения eclipse Java-SE-1.7 (jre7) и решил проблему.

person Liu Dajian    schedule 04.05.2017

Зависимость от строковой константы JNA RESOURCE_PREFIX была удалена в последних версиях 3.4.9 (для Tesseract 3.05.01) и 4.0.2 (для Tesseract 4.0.0-beta.1). Библиотеку теперь можно использовать с Glassfish.

person nguyenq    schedule 04.05.2018