gpt4 book ai didi

java - ServletContext.getRealPath() 是否适用于网络片段?

转载 作者:行者123 更新时间:2023-11-28 23:39:42 27 4
gpt4 key购买 nike

我使用网络片段(servlet 3 规范),因此可以加载例如META-INF/resources/access.xml 文件,它位于我的 WAR 的 /WEB-INF/lib/ 库中,通过 ServletContext.getResourceAsStream("access .xml")

ServletContext.getRealPath("access.xml") 做同样的事情是行不通的 (=> null)。

规范指出:

The getRealPath method takes a String argument and returns a String representation of a file on the local file system to which a path corresponds. Resources inside the META-INF/resources directory of JAR file must be considered only if the container has unpacked them from their containing JAR file when a call to getRealPath() is made, and in this case MUST return the unpacked location.

我的容器 (Tomcat) 没有解压 jar ,这似乎是问题所在? Tomcat如何解压 jar 。我应该在打包 WAR 时解压 jar 吗?

最佳答案

所以这取决于你想做什么。如果您试图在包含的库依赖项中获取文件的位置,那么我不确定。如果你想阅读 access.xml 文件的内容,那么你可以使用

new InputStreamReader(context.getResourcesAsStream("access.xml")); 

然后使用 InputStreamReader 获取文件的内容。

关于java - ServletContext.getRealPath() 是否适用于网络片段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21094708/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com