0

我已阅读有关在动态项目中访问静态文件的问题:Where to place a directory of static files in Eclipse Dynamic Web Project

唯一的答案建议使用 ServletContext 中的 getRealPath 方法。

我有一个动态项目,其中常规 Java 类(不是 servlet,不是 JSP)必须访问具有固定路径的静态文件。这个类是从 JSP 调用的,但无论我把这个文件放在哪里(项目根目录、WebContent 文件夹......)都会引发 FileNotFound 异常。

有没有办法让这个类自己访问动态 Web 项目中的静态文件,而不必从 servlet 接收“真实路径”?这样做的正确方法是什么?

非常感谢。

这是类访问静态文件的行:

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)
4

1 回答 1

0

如果静态文件存在于 Web 应用程序相关文件夹中,那么通过使用相对路径,您可以访问这些静态文件,否​​则使用绝对路径。

于 2013-08-06T12:27:18.097 回答