WEB-INF
Web アプリケーションにプレーンな Java クラスがあり、フォルダーの下にある構成ファイルを読みたいと考えています。WEB-INF/classes
クラスパス(フォルダー)にある場合、ファイルにアクセスする方法を知っています。WEB-INF/classes
フォルダーはファイル用であるため、構成ファイルをフォルダー .class
の下にのみ保持したいと考えています。WEB-INF
Javaクラスからアクセスする方法を誰か教えてもらえますか?
WEB-INF
Web アプリケーションにプレーンな Java クラスがあり、フォルダーの下にある構成ファイルを読みたいと考えています。WEB-INF/classes
クラスパス(フォルダー)にある場合、ファイルにアクセスする方法を知っています。WEB-INF/classes
フォルダーはファイル用であるため、構成ファイルをフォルダー .class
の下にのみ保持したいと考えています。WEB-INF
Javaクラスからアクセスする方法を誰か教えてもらえますか?
ServletContext.getResourceAsStream()は、WAR ファイルのルートからの相対パスからファイルをロードします。何かのようなもの:
ServletContext ctx;
InputStream configStream = ctx.getResourceAsStream("/WEB-INF/config.properties");
ここでの主な問題は、これを行うにはサーブレット コンテキストにアクセスする必要があることです。サーブレットまたはフィルターにはそれがありますが、アプリケーションのさらに奥にある非 Web コンポーネントにはありません。いくつかのオプションがあります:
getRealPath()
メソッドを使用してサーブレットの絶対パスを取得し、取得したパスServletContext
に追加WEB-INF
できます。これは非常に基本的なことだと思いますが、他にもいくつかの答えがあるかもしれません。
「new FIleInputStream( Utility.class.getClassLoader().getResource(keyFileName).getPath() )」がうまくいきました。
ここで、「Utility」は、コードがこの行を呼び出しているクラス名です。「keyFileName」は、開く必要があるファイルです。