Java OCR Tesseract-Tesser4j行为怪异

Java OCR Tesseract-Tesser4j行为怪异,java,ocr,tesseract,tess4j,Java,Ocr,Tesseract,Tess4j,我试图从图像中提取文本。问题是,我正在使用下面给定的代码来处理图像并打印提取的文本 public class Test { public static void extractText(String filename) // public static void main(String[] args) { System.setProperty("jna.library.path", "32".equals(System.getProper

我试图从图像中提取文本。问题是,我正在使用下面给定的代码来处理图像并打印提取的文本

    public class Test { 

    public static void extractText(String filename)
    //    public static void main(String[] args)
    {
        System.setProperty("jna.library.path", "32".equals(System.getProperty("sun.arch.data.model")) ? "lib/win32-x86" : "lib/win32-x86-64");

        File imageFile = new File("img_perspective.png");
        Tesseract instance = Tesseract.getInstance();  // JNA Interface Mapping
    //  Tesseract1 instance = new Tesseract1(); // JNA Direct Mapping

        try {
            String result = instance.doOCR(imageFile);
            System.out.println(result);
        } catch (Exception e) {
            System.err.println(e.getMessage());
        }
    }
}
当我使用main方法时,OCR引擎工作得很好,可以提取文本。但当我试图将此主方法转换为名为“extractText()”的方法并试图从另一个类调用它时,它会引发异常:

org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [com.patternrecognition.preprocessing.Preprocessing] in context with path  [/ImagePreprocessing] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: com.sun.media.imageio.plugins.tiff.TIFFImageWriteParam
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1569)
at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source)
at com.patternrecognition.preprocessing.test.extractText(test.java:19)
我不知道这是怎么回事。我使用的代码与硬编码文件名完全相同。只更改了方法


这太令人沮丧了。请有人帮忙。

确保
jai imageio.jar
在类路径中。并调用
ImageIO.scanForPlugins()在OCR之前


如果您使用的是web应用程序,请确保jai-imageio.jar位于web-INF/lib文件夹中。这对我有用