繁体   English   中英

Java WebApp:从位于WEB-INF的.jar加载资源

[英]Java WebApp: Loading resource from .jar located in WEB-INF

有很多类似的问题,但我的可能有点不同:

在Web应用程序运行时,从位于WEB-INF/lib文件夹中的.jar文件内部加载资源的正确方法是什么(如果我知道jar文件名及其资源所属的类的名称)? 为此,我应该使用getServletContext().getResourceAsStream(?)还是<name-of-known-class>.getResourseAsStream(?) ,我需要在其中指定什么路径?

因此,结构为:

/WEB-INF
    /classes
        /some/package/name
           ?.class #some Java code or Servlet that tries to read 'required-file.xml'
    /lib
        /<jar-with-known-name>.jar
            /another/package/with/known/name
                SomeKnownClass.class
                required-file.xml

您应该使用<name-of-known-class>.getResourseAsStream(?) ,它使用“本地”类加载器加载资源。 对于webapp,将使用webapp的类加载器。

getServletContext().getResourceAsStream(?)方法将返回相对于webapp根的webapp资源,并且无法查看JAR文件内部。

此方法的Javadoc描述了您需要指定的路径,但实际上您可以使用相对于已知类的路径,例如

SomeKnownClass.class.getResourceAsStream("required-file.xml");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM