我正在使用 ClassLoader.getSystemResourceAsStream 加载配置文件。该文件位于我的 GWT 应用程序的 src 文件夹中。最终结果是
war/WEB-INF/classes
。
我将war
文件夹复制到tomcat的webapps/MyApp
下。运行应用程序时,getSystemResourceAsStream 会引发异常。
在 Jetty 下运行时效果很好。
这应该有效:
Thread.currentThread().getContextClassLoader().getResourceAsStream( "relative/path" );
注意
"relative/path"
是相对于war/WEB-INF/classes
的路径
例如。如果您的文件是 war/WEB-INF/classes/resources/my.properties
,则使用 "resources/my.properties"
getClass().getResourceAsStream()
。您需要调用此方法来访问 Web 应用程序的类加载器。您调用的方法使用系统类加载器,我相信它只会包含 Web 容器本身的类。