我使用Tess4j API執行OCR並在eclipse中創建了動態Web項目。如果我直接在Java資源文件夾下創建一個新的Java類,代碼工作正常。
Java代碼在創建時作爲獨立的靜態主類正常工作,但從servlet調用時沒有工作
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());
}
}
但是我得到的時候,我呼籲從我的Servlet的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());
}
}
我已經在WEB-INF的lib文件夾下包含了所有需要的jar文件。還在項目構建路徑中添加了罐子。任何人都可以讓我知道我做錯了什麼。
例外:
java.lang.IllegalStateException:輸入未設置
23:33:45.002 [HTTP-BIO-8080-EXEC-5] ERROR net.sourceforge.tess4j.Tesseract - 輸入沒有設置
java.lang中.IllegalStateException:輸入未設置
請[格式化您的文章](http://stackoverflow.com/editing-help)。這是一團糟,不會以目前的形式閱讀。 – tnw
你確定servlet版本正在找到指定的文件嗎?嘗試在'File image = ...'之後添加輸出以確保文件存在並且可讀。 – KevinO
@KevinO ..在File image = ..行後面添加了一個System.out.println(),它在屏幕上輸出。所以我認爲該文件是可讀的 –