gpt4 book ai didi

servlets - 如何在Grails中以字符串形式获取真实路径

转载 作者:行者123 更新时间:2023-12-02 14:48:17 25 4
gpt4 key购买 nike

使用grails-3.3.1开发项目并生成一个Runnable WAR文件。当我使用命令运行时:

java -jar build/libs/myproject-0.1.war

它为以下行返回 null:
serveltContext.getRealPath("/someSource");

但是当部署在Tomcat容器中时,它工作正常。

然后尝试以下方式:
servletContext.getResource("someSource").getPath();

它正在返回,但不是预期的,也不是 getRealPath()返回的内容。
这样返回:
D:/myprojects/myproject/build/libs/myproject-01.war*/

这对我没有用。找到建议使用 getResourceAsStream()的答案,但我不需要资源,我只需要 String

最佳答案

我找不到在本地以及在容器中部署时都可以使用的解决方案。我最终使用此替代方法来获取路径,具体取决于代码在哪个环境中运行:

def path
if (Environment.current == Environment.DEVELOPMENT) {
path = java.nio.file.FileSystems.default.getPath("someSource").toAbsolutePath().toString()
} else {
path = ServletContextHolder.servletContext.getRealPath("/someSource")
}

关于servlets - 如何在Grails中以字符串形式获取真实路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58677799/

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