OCR を実行するために Tess4j API を使用しており、Eclipse で動的 Web プロジェクトを作成しました。Java リソース フォルダーの直下に新しい Java クラスを作成すると、コードは正常に動作します。
public static void main(String[] args){
File image = new File("Scan0008.jpg");
ITesseract instance = new Tesseract();
try{
String result = instance.doOCR(image);
System.out.println(result);
}catch(TesseractException e){
System.err.println(e.getMessage());
}
}
ただし、サーブレットの doPost メソッドから同じコードを呼び出すと、例外が発生します。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Validate valObj = new Validate();
valObj.validate();
}
public void validate() {
File image = new File("Scan0008.jpg");
ITesseract instance = new Tesseract();
try {
String result = instance.doOCR(image);
System.out.println(result);
} catch (TesseractException e) {
System.err.println(e.getMessage());
}
}
必要なすべての jar を WEB-INF の lib フォルダーに含めました。プロジェクトのビルドパスにもjarを追加しました。誰かが私が間違っていることを教えてください。
例外:
java.lang.IllegalStateException: 入力が設定されていません
23:33:45.002 [http-bio-8080-exec-5] エラー net.sourceforge.tess4j.Tesseract - 入力が設定されていません
java.lang.IllegalStateException: 入力が設定されていません