【发布时间】:2014-01-13 15:14:14
【问题描述】:
我使用 web 片段(servlet 3 规范),因此可以加载例如META-INF/resources/access.xml 文件位于我的 WAR 的 /WEB-INF/lib/ 的库中,通过 ServletContext.getResourceAsStream("access.xml")。
对ServletContext.getRealPath("access.xml") 执行相同操作不起作用 (=> null)。
规范规定:
getRealPath方法接受一个String参数并返回一个路径对应的本地文件系统上文件的String表示。仅当调用getRealPath()时容器已从其包含的 JAR 文件中解压缩它们时,才必须考虑 JAR 文件的META-INF/resources目录中的资源 制作完成,在这种情况下必须返回解压后的位置。
我的容器(Tomcat)没有解压罐子,这似乎是问题所在? Tomcat如何解压罐子。打包 WAR 的时候要不要拆罐子?
【问题讨论】:
标签: java tomcat war servlet-3.0 getresource