【问题标题】:getRealPath("/") not working in spring boot [duplicate]getRealPath(“/”)在春季启动中不起作用[重复]
【发布时间】:2017-12-05 22:28:23
【问题描述】:

我正在开发 Spring Boot 应用程序。我想将 jsp 文件动态写入 Web 内容。所以我从 ServletContext 中获取了真正的路径并将其写入。它在 Eclipse 中运行良好。

@autowired
ServletContext context 

ServletContext context = request.getSession().getServletContext();
String targetPath = context.getRealPath("/default/pages");

但是我尝试在linux机器上部署一个war文件,路径是空的。请帮我解决这个问题或让我知道是否可以这样做?

spring boot embedded tomcat

【问题讨论】:

  • 如果我错了,请纠正我,但是“/”符号表示整个系统的根目录。字符串试图从根目录中查找“/default/pages”。所以可以试试类路径:?
  • classpath 将只包含 java 文件。我想写入网页内容。 getRealPath("/default/pages") @RedCollarPanda
  • 任何文件访问权限?你能检查一下吗?
  • 仅作为 root 用户使用。拥有所有权限@RedCollarPanda
  • getRealPath 在 SO 上不起作用的情况有很多类似的问题。请检查其他问题和答案。此外,您没有指定您的应用程序服务器/servlet 容器。 AFAIK 如果您的 servlet 容器未解压缩 WAR(即您无法获取 WAR 中文件的真实路径),则实际路径不起作用。

标签: java spring spring-mvc servlets jakarta-ee


【解决方案1】:

在实际部署中不依赖 getRealPath() 的原因有很多。根据您的用例,有几种更好的方法;但最适合我的是使用application.properties 文件中的文件路径@Value

【讨论】:

    猜你喜欢
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 2017-04-28
    • 2018-06-12
    • 1970-01-01
    • 2021-08-10
    相关资源
    最近更新 更多