3

/headerNetbeans の Web ページ ディレクトリにフォルダーを作成し、という名前のイメージを追加しましたheader.png。次のコードを使用して、サーブレットでこの画像ファイルにアクセスします。

BufferedImage image = ImageIO.read(getClass().getResource(" /header/header.png"));

しかし、これは起こっていません。次のエラーが発生します。

java.lang.IllegalArgumentException: 入力 == null!

以下は私のプロジェクトのディレクトリ構造です:

ここに画像の説明を入力

このエラーはどのように発生し、どうすれば解決できますか?

4

1 に答える 1

1

Class#getResource()、パブリックWebコンテンツからではなく、クラスパスからリソースを返します。

代わりにServletContext#getResource()、またはそれ以上が必要です。getResourceAsStream()

BufferedImage image = ImageIO.read(getServletContext().getResourceAsStream("/header/header.png"));

(パスから末尾のスペースも削除したことに注意してください)

一部のユーザーは使用を提案する場合ServletContext#getRealPath()がありますが、この特定のケースでは使用しないでくださいnull。コンテナーが、デプロイされたWARをローカルディスクファイルシステムではなくメモリに拡張するように構成されている場合に返される可能性があります。

参照:

于 2012-11-30T14:58:31.937 に答える