サーバサイドのJavaコード内で処理を行うためにバイナリイメージファイルをロードしようとしています。私は現在、私の実行クラスが存在するパッケージに私の画像を配置し、呼び出しています:Tomcatにデプロイされた展開されていないwarファイルのリソースファイルを読み取るにはどうすればよいですか?
Image img = Image.getInstance(this.getClass().getResource("logo.png"));
を私が爆発し、戦争のセットアップで私の開発ボックス上でTomcatを実行しているとき、これは正常に動作しますが、私は、サーバーにデプロイするときTomcatを実行してwarファイルを分解しない場合、getResourceを呼び出すとnullが返されます。
私も私のコンテキストルートに画像を移動すると、このようにそれをアクセスしようとしました:
Image img = Image.getInstance(this.getClass().getResource("/../../logo.png"));
繰り返しますが、これは私の開発ボックスに取り組んでいますが、私は他の場所でそれを展開していないとき。
このファイルにアクセスするには、より良い方法がありますか?私は間違って何をしていますか?
ありがとうございます!
私はおそらくも私がいることを言及している必要がありますMavenを使って私のweb-appをビルドします。私は自分の問題を解決する完全な答えを持っていますが、自分の質問で8時間は投稿できません。 – 11101101b
"src/main/resources"ディレクトリにリソースを入れてください。 次にアクセスしてください: this.getClass()。getResource( "/ logo.png"); または: Thread.currentThread()。getContextClassLoader()。getResource( "logo.png"); – 11101101b