gpt4 book ai didi

java - Tomcat 8 中的 getServletContext().getRealPath() 返回错误的路径

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:58:44 31 4
gpt4 key购买 nike

我正在尝试在 Tomcat 8 下运行一个传统上在 WebSphere 下运行的 Java Web 项目。一个 servlet 进行以下调用:

xslFilePath = config.getServletContext().getRealPath(System.getProperty("file.separator") + "xsl");

config 是 ServletConfig 的实例。

xsl 位于项目内部并部署为 C:\myproject\build\web\xsl。当 servlet 尝试引用位​​于 xslFilePath 中的文件时,我得到一个异常,表明 Tomcat 实际上正在 C:\Program Files\Apache Software Foundation\Apache Tomcat 8.0.3\bin\null 中查找 xsl 文件。显然这是错误的位置,并没有找到任何东西。

不幸的是,我无法更改代码,因为我无权访问源代码。所以我想知道这是否是 Tomcat 的预期行为?是否有任何 Tomcat 配置可以让我确保路径引用到部署目录而不是 Tomcat bin 目录?选择其他一些 servlet 容器会更好吗?任何建议将不胜感激。

最佳答案

使用 getRealPath("/xsl")。

getRealPath() 的参数是一个“虚拟路径”——不幸的是——它是 Java 文档中使用的一个概念,但实际上并没有在任何地方定义。假定它是 Web 应用程序中资源的路径,并且在这种情况下分隔符始终为“/”,与平台无关。

关于java - Tomcat 8 中的 getServletContext().getRealPath() 返回错误的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25555541/

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