WEB-INFWeb アプリケーションにプレーンな Java クラスがあり、フォルダーの下にある構成ファイルを読みたいと考えています。WEB-INF/classesクラスパス(フォルダー)にある場合、ファイルにアクセスする方法を知っています。WEB-INF/classesフォルダーはファイル用であるため、構成ファイルをフォルダー .classの下にのみ保持したいと考えています。WEB-INF
Javaクラスからアクセスする方法を誰か教えてもらえますか?
WEB-INFWeb アプリケーションにプレーンな 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」は、開く必要があるファイルです。