使用getRealPath创建的文件在.metada / .plugins文件夹中创建,而不是在WebContent项目文件夹中创建

时间:2014-07-01 04:58:39

标签: eclipse java-ee

我正在尝试使用Servlet中的以下代码创建文件:

File outfile= new File(servletContext.getRealPath("/Output/output.xml"));
OutputStream os = new FileOutputStream(outfile);
来自J2EE应用程序(CallMain)的

并且文件在已部署的临时路径中创建

.metadata.plugins \ org.eclipse.wst.server.core \ TMP1 \ wtpwebapps \ CallMain \输出

实际上我希望在当前项目文件夹中创建文件: WebContent

2 个答案:

答案 0 :(得分:1)

实际上当你使用嵌入式tomcat服务器在eclipse中运行servlet时

getServletContext().getRealPath("WEB-INF")

给你这个

D:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\DynaServletProject\WEB-INF

但是当您从独立的Apache Tomcat运行servlet时:

getServletContext().getRealPath("WEB-INF")

这会给你

D:\apache-tomcat-7.0.33\webapps\DynaServletProject\WEB-INF

虽然在日食中你可以给出绝对路径我不认为这是最好的方法

答案 1 :(得分:0)

默认情况下,您的应用程序将从隐藏在工作空间的.metadata目录中的目录进行分段和运行。 是运行时的“真实路径”。检查服务器的配置,以获取有关从工作区文件夹部署app目录的选项。