0

サーバー側の 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 ファイル (libblept168 および libtesseract302) をクライアント プロジェクトのフォルダーの下に置き、対応するライブラリ (jna、jai_imageio、ghost4j_0.3.1) を追加し、クラスパスに必要な変更を加えましたが、それでもこのエラーが発生します。

サーバー側でテストコードを実行すると、正常に動作します。しかし、クライアント側のコードは機能していません。この Web サービスを実行するには、クライアント側で追加の調整を行う必要がありますか?

4

1 に答える 1

0

実際の問題は Tomcat サーバーにあることがわかりました。出来上がりよりも、プロパティの下のTomcatのソースにjarファイルを配置する必要がありました!

于 2013-09-20T11:38:50.960 に答える