玻璃鱼中的Tess4j错误:java.lang.NoSuchFieldError:RESOURCE_PREFIX [英] Tess4j in glassfish ERROR:java.lang.NoSuchFieldError: RESOURCE_PREFIX

查看:571
本文介绍了玻璃鱼中的Tess4j错误:java.lang.NoSuchFieldError:RESOURCE_PREFIX的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在oracle-glassfish3.1.1中使用Tess4j 2.0.0,例外是:

I'm using Tess4j 2.0.0 in oracle-glassfish3.1.1, Exception is:

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.executor.FetchTodayConsumeRecordExecutor.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)

java.lang.NoSuchFieldError: RESOURCE_PREFIX at net.sourceforge.tess4j.util.LoadLibs.(LoadLibs.java:60) at net.sourceforge.tess4j.TessAPI.(TessAPI.java:40) at net.sourceforge.tess4j.Tesseract.init(Tesseract.java:360) at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:273) at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:256) at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:237) at net.sourceforge.tess4j.Tesseract.doOCR(Tesseract.java:221) at cn.uxcard.util.CaptchaUtil.getCaptcha(CaptchaUtil.java:29) at cn.uxcard.util.HttpConnection.getCaptcha(HttpConnection.java:60) at cn.uxcard.util.HttpConnection.tryCaptcha(HttpConnection.java:78) at cn.uxcard.util.HttpConnection.login(HttpConnection.java:90) at cn.uxcard.util.HttpConnection.tryLogin(HttpConnection.java:121) at cn.uxcard.util.HttpConnection.init(HttpConnection.java:148) at cn.uxcard.util.HttpUtil.getConnection(HttpUtil.java:28) at cn.uxcard.executor.FetchTodayConsumeRecordExecutor.run(FetchTodayConsumeRecordExecutor.java:29) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at 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 .班级". 我可以更改glassfish的课程加载顺序吗?

the glassfish load com.sun.jna.Platform class, don't use WEB-INF/lib/jna-4.1.0.jar but use "bundle://185.0:1/com/sun/jna/Platform.class". Can I change the glassfish classload order and if so how?

推荐答案

在尝试使用Tess4j开发Web应用程序时遇到了相同的问题,经过一些研究发现,GlassFish Server运行时中的类加载器遵循委托层次结构,在此链接中指定>>

I encountered the same issue while trying to develop a web application with Tess4j and after some research found out that class loaders in the GlassFish Server runtime follow a delegation hierarchy as specified in this link >>

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 )中)为我解决了此错误.

Accordingly, placing the jar files (tess4j.jar, jna.jar, jai_imageio.jar, commons-io-2.4.jar) in the system extensions directory (domain-dir/lib/ext) resolved this error for me.

使用的版本:

•GlassFish Server 3.1.2.2 •jdk-7u80-windows-i586.exe •NetBeans IDE 8.0

• GlassFish Server 3.1.2.2 • jdk-7u80-windows-i586.exe • NetBeans IDE 8.0

这篇关于玻璃鱼中的Tess4j错误:java.lang.NoSuchFieldError:RESOURCE_PREFIX的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆