ClassLoader.getSystemResourceAsStream 在 tomcat 上运行时不起作用

问题描述 投票:0回答:3

我正在使用 ClassLoader.getSystemResourceAsStream 加载配置文件。该文件位于我的 GWT 应用程序的 src 文件夹中。最终结果是

war/WEB-INF/classes
。 我将
war
文件夹复制到tomcat的
webapps/MyApp
下。运行应用程序时,getSystemResourceAsStream 会引发异常。 在 Jetty 下运行时效果很好。

java gwt tomcat
3个回答
3
投票

尝试:

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

一定会成功的;我也有同样类型的问题。 这个问题描述了您遇到该问题的原因。


2
投票

这应该有效:

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

注意

"relative/path"
是相对于
war/WEB-INF/classes
的路径 例如。如果您的文件是
war/WEB-INF/classes/resources/my.properties
,则使用
"resources/my.properties"


1
投票

尝试使用

getClass().getResourceAsStream()
。您需要调用此方法来访问 Web 应用程序的类加载器。您调用的方法使用系统类加载器,我相信它只会包含 Web 容器本身的类。

© www.soinside.com 2019 - 2024. All rights reserved.