動的プロジェクトでの静的ファイルへのアクセスに関するこの質問を読みました: Eclipse 動的 Web プロジェクトで静的ファイルのディレクトリを配置する場所
唯一の答えは、ServletContext の getRealPath メソッドを使用することです。
通常の Java クラス (サーブレットでも JSP でもない) が固定パスで静的ファイルにアクセスする必要がある動的プロジェクトがあります。このクラスは JSP から呼び出されますが、このファイルをどこに置いても (プロジェクト ルート、WebContent フォルダーなど)、FileNotFound 例外がスローされます。
サーブレットから「実際のパス」を受け取ることなく、このクラスが動的 Web プロジェクトの静的ファイルに独自にアクセスする方法はありますか? これを行う適切な方法は何ですか?
どうもありがとうございました。
これは、クラスが静的ファイルにアクセスする行です。
System.setProperty("javax.net.ssl.trustStore","trust.jks");
System.setProperty("javax.net.ssl.keyStore","cliente.jks");
ルート ディレクトリ、WebContent、WebContent/WEB-INF、および WEB-INF/lib の下に配置してみました。
絶対パスは機能すると思いますが、良い考えではないと思います。
根本的な例外は次のとおりです。
java.io.FileNotFoundException: cliente.jks (El sistema no puede hallar el archivo especificado)
java.io.FileInputStream.open(Native Method)
java.io.FileInputStream.<init>(Unknown Source)
java.io.FileInputStream.<init>(Unknown Source)
sun.security.ssl.SSLContextImpl$DefaultSSLContext$2.run(Unknown Source)
sun.security.ssl.SSLContextImpl$DefaultSSLContext$2.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
sun.security.ssl.SSLContextImpl$DefaultSSLContext.getDefaultKeyManager(Unknown Source)
sun.security.ssl.SSLContextImpl$DefaultSSLContext.<init>(Unknown Source)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)