【发布时间】:2011-10-16 17:22:16
【问题描述】:
有没有办法使用 getResourceAsStream 从 Tomcat 应用程序加载存储在 JAR 中的文件?
我有一个库,可以将它需要的所有文件连同编译的类一起放入它的 jar 中。该代码在独立应用程序中使用该库时有效,但在 Tomcat 内部使用该库时无效(使用 PHP java-bridge)。
final InputStream stream = Object.class.getResourceAsStream("/styles/foo.xsl");
我尝试没有成功使用问题getResourceAsStream not loading resource in webapp中概述的解决方案并将代码更改为
final ClassLoader resourceLoader = Thread.currentThread().getContextClassLoader();
final InputStream stream = resourceLoader.getResourceAsStream("/styles/foo.xsl");
当库单独使用或在 Tomcat 中使用库时,后面的代码都不起作用。在这两种情况下stream == null。
我尝试加载的文件已正确存储在 /styles/foo.xsl 的 JAR 中。包含所有类和这些其他文件的 JAR 是 tomcat/webapps/iJavaBridge/WEB-INF/lib/。
有人能推荐一段在 Tomcat 和非 Tomcat 应用程序中都有效的代码吗?
【问题讨论】:
-
sitepoint.com/forums/… 建议使用
<Context path="/app" antiJARLocking="true"/>。我应该向 Tomcat 管理员建议此更改吗?
标签: java jakarta-ee tomcat