ClassLoader.getSystemResourceAsStream在tomcat上运行时无法正常工作

时间:2011-05-10 08:31:02

标签: java gwt tomcat

我正在使用ClassLoader.getSystemResourceAsStream加载配置文件。该文件放在我的GWT应用程序的src文件夹中。它最终在war/WEB-INF/classes。 我将war文件夹复制到webapps/MyApp下的tomcat。运行应用程序时,getSystemResourceAsStream会引发异常。 在Jetty下运行时工作正常。

3 个答案:

答案 0 :(得分:3)

尝试:

getClass().getClassLoader().getResourceAsStream();

一定会奏效;我也遇到了同样的问题。 This question描述了您遇到此问题的原因。

答案 1 :(得分:1)

请尝试使用getClass().getResourceAsStream()。您需要调用此方法来访问Web应用程序的类加载器。您正在调用的方法使用系统类加载器,我认为它只包含Web容器本身的类。

答案 2 :(得分:1)

这应该有效:

Thread.currentThread().getContextClassLoader().getResourceAsStream( "relative/path" );

请注意,relative / path是相对于war / WEB-INF / classes的路径 例如。如果您的文件是war / WEB-INF / classes / resources / my.properties,那么使用“resources / my.properties”