我不能将tess4j OCR库与我的JBoss 7.1.1一起使用。我没有Maven配置,也不知道异常。我认为是slf4j日志库的冲突问题。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String filein = getServletContext().getRealPath("/test/img/pic.png");
File imageFile = new File(filein);
ITesseract instance = new Tesseract();
try{
String result = instance.doOCR(imageFile);
System.out.println(result);
}catch (TesseractException e){
System.err.println(e.getMessage());
}
}
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].(...)facade.reports.OCRtest]] (http--0.0.0.0-8080-1) Servlet.service() para servlet (...)facade.reports.OCRtest lanzó excepción: java.lang.NoSuchMethodError: org.slf4j.bridge.SLF4JBridgeHandler.removeHandlersForRootLogger()V
at net.sourceforge.tess4j.util.LoggerConfig.loadConfig(Unknown Source) [tess4j-3.3.0.jar:]
at net.sourceforge.tess4j.util.LoggHelper.toString(Unknown Source) [tess4j-3.3.0.jar:]
at net.sourceforge.tess4j.Tesseract.<clinit>(Unknown Source) [tess4j-3.3.0.jar:]
at (...)facade.reports.OCRtest.doGet(OCRtest.java:36) [classes:]
答案 0 :(得分:0)
在使用tess4j实施OCR时,我遇到了同样的问题。我通过使用slf4j遗留实现并重新配置我的maven项目中使用的log4j属性来解决我的问题做了大量研究。
有一天,我在他们的官方页面上读到了关于删除引起问题的行,即removeHandlersForRootLogger();
,然后我从loadderConfig.java
util文件和中删除了这一行尤里卡!它开始工作了。
请按照以下步骤操作:
找到tess4j\util
文件夹的路径。我是这样的:D:\Tess4J\src\net\sourceforge\tess4j\util
。然后打开loaderConfig.java
文件,删除/评论removeHandlersForRootLogger();
行。
稍后使用Ant命令再次构建整个项目。由于它是一个Apache Ant项目,请查看build.xml
并探索构建ant项目,学习新东西很有趣。
如果您没有幸运地构建项目,只需在包含build.xml
的主文件夹中打开cmd提示并键入ant
并按Enter键,它将开始使用以下配置构建build.xml
Feed。
Voilà,您在dist
文件夹中创建了自己的JAR。
现在将此JAR包含在您的项目存储库中。