Tesseract实现Web服务以触发OCR操作

时间:2013-09-19 08:48:38

标签: java ocr tesseract

我正在尝试实现一个触发服务器端OCR操作的Web服务。

客户代码:

...
    sy = belgeArsivle(testServisIstegi, ab);
...    
      private static ServisYaniti belgeArsivle(com.ocr.ws.ServiceRequest serviceRequest,com.ocr.ws.Document document) {
            com.ocr.ws.ServiceRequest  service = new com.ocr.ws.OCRArsivWSService();
            com.ocr.ws.OCRArsivWS port = service.getOCRArsivWSPort();
            return port.docArchive(serviceRequest, document);
        }

当我在服务器端运行代码时没有问题。但每当我从客户端调用Web服务方法时,我都会收到此错误代码:

Exception: javax.xml.ws.soap.SOAPFaultException: Unable to load library 'libtesseract302': The specified module could not be found.

工作服务器端代码是:

public static void main(String[] args) {
        // TODO code application logic here

        File imageFile = new File("...OCR\\testTurWithBarcodeScanned.png");
        Tesseract instance = Tesseract.getInstance();
        try {
            String lang = "tur";
            instance.setLanguage(lang);

            String result = instance.doOCR(imageFile);
            System.out.println(result);

            // write in a file
            try {
                File file = new File("...MyOutputWithBarcode.txt");
                BufferedWriter out = new BufferedWriter(new FileWriter(file));
                out.write(result);
                out.close();
            } catch (IOException ex) {
            }

        } catch (TesseractException ep) {
            System.err.println(ep.getMessage());
        }

    }

我知道这个错误代码是关于Tesseract库的。我将相应的.dll文件(liblept168和libtesseract302)放在客户端项目的文件夹下,添加了相应的库(jna,jai_imageio,ghost4j_0.3.1),在类路径中做了必要的更改但仍然出现此错误。

我在服务器端运行测试代码,它工作正常。但客户端代码不起作用。我是否需要在客户端进行一些额外调整才能运行此Web服务?

1 个答案:

答案 0 :(得分:0)

我发现实际问题出在Tomcat服务器上。我不得不把jar文件放到属性下的Tomcat源代码中,而不是瞧!