私はJavaEEベースのWebアプリケーションを作成し、それをWARファイルとしてエクスポートし、VM上で実行されているTomcatサーバーにデプロイしました。HTTPステータス500 - 入力ファイルを読み取ることができません
このアプリケーションでは、ユーザーはvmディスク上のある場所に画像をアップロードしてから、以前にアップロードしたファイルへのパスを受け取る画像処理クラスを実行できます。
ImageIO.read()を使用してファイル内をバッファリングされたイメージとして読み込もうとしています。
IDEで実行している場合、イメージ処理クラスは正常に動作し、ディスクに保存されたイメージを受け入れて、処理されたイメージを出力できます。しかし、私はエラーと会っていますデプロイされたWebアプリケーションとしてそれにアクセスするとき:
HTTP Status 500 - Can't read input file!
type Exception report
message Can't read input file!
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.imageio.IIOException: Can't read input file!
javax.imageio.ImageIO.read(Unknown Source)
upload.servlet.resizeImageAndSaveSobel2.sobelFilter(resizeImageAndSaveSobel2.java:22)
upload.servlet.resizeImageAndSaveSobel2.processImage(resizeImageAndSaveSobel2.java:14)
upload.servlet.RunTongue.doPost(RunTongue.java:24)
javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
note The full stack trace of the root cause is available in the Apache Tomcat/9.0.0.M13 logs.
これは、アップロードされた画像を読み込み、画像処理クラスの一部であるコードです:
public void sobelFilter(String input, String output) throws IOException {
File inputFile = new File(input);
BufferedImage img = ImageIO.read(inputFile);
ImageReader ir = new ImageReader();
BufferedImage sobelImg = ir.greyscale(img);
File outputFile = new File(output);
ImageIO.write(sobelImg, "jpg", outputFile);
}
入力ファイルの文字列は次のとおりです。C:/ Users/SRCMIPS/Desktop/M2/Image Upload/PatientImage.jpeg
プロジェクトのWARを展開した場合、ImageIO.readに関する問題がありますか? アプリケーションは、VM上のパスからイメージを読み取ることができませんか?
この問題の解決方法については、ご了承ください。
を 'sobelFilter'方法でブレークポイントを入れて、' input'を点検。ほとんど間違っている可能性があります。 – VHS
外部静的データを提供するようにTomcatを設定する必要があります。これを参照してください。 [リンク](http://www.moreofless.co.uk/static-content-web-pages-images-tomcat-outside-war/) –
@PGHもこのヘルプを望んで[リンク](http:// stackoverflow。 com/questions/1812244/simple-way-to-serve-static-data-outside-the-application-as-a-java) –