0

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

客户端代码:

...
    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 服务?

4

1 回答 1

0

我发现实际问题出在 Tomcat 服务器上。我不得不将 jar 文件放到属性下的 Tomcat 源中,然后瞧!

于 2013-09-20T11:38:50.960 回答