【发布时间】: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