【发布时间】:2011-05-10 08:31:01
【问题描述】:
我正在使用 ClassLoader.getSystemResourceAsStream 加载配置文件。该文件位于我的 GWT 应用程序的 src 文件夹中。它以war/WEB-INF/classes 结尾。
我将war 文件夹复制到webapps/MyApp 下的tomcat。运行应用程序时,getSystemResourceAsStream 会引发异常。
在 Jetty 下运行时运行良好。
【问题讨论】:
我正在使用 ClassLoader.getSystemResourceAsStream 加载配置文件。该文件位于我的 GWT 应用程序的 src 文件夹中。它以war/WEB-INF/classes 结尾。
我将war 文件夹复制到webapps/MyApp 下的tomcat。运行应用程序时,getSystemResourceAsStream 会引发异常。
在 Jetty 下运行时运行良好。
【问题讨论】:
试试:
getClass().getClassLoader().getResourceAsStream();
它肯定会起作用;我也有同样类型的问题。 This question 描述了您遇到此问题的原因。
【讨论】:
改用getClass().getResourceAsStream()。您需要调用此方法来访问 Web 应用程序的类加载器。您调用的方法使用系统类加载器,我相信它只会包含 Web 容器本身的类。
【讨论】:
getClass().getResourceAsStream()。
这应该可行:
Thread.currentThread().getContextClassLoader().getResourceAsStream( "relative/path" );
注意relative/path是相对于war/WEB-INF/classes的路径 例如。如果你的文件是 war/WEB-INF/classes/resources/my.properties 然后使用“resources/my.properties”
【讨论】: