サーバー側の 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 サービスを実行するには、クライアント側で追加の調整を行う必要がありますか?