【问题标题】:create temp files in tomcat webapps folder在 tomcat webapps 文件夹中创建临时文件
【发布时间】:2012-05-29 15:32:23
【问题描述】:

我有一个在开发模式下完美运行的 Google Web 项目。在这个项目的某个地方,我创建了一些 .xml 文件,我在解析后删除了这些文件。

当我在 Tomcat7 (var/lib/tomcat7/webapps) 中部署我的项目的 .war 文件(我使用 tomcat 管理来部署它)时,项目无法创建任何文件。我已经尝试了 webapps 文件夹中所有可能的路径。我什至尝试过 context.getRealPath("/")+"/ROOT/tmp/" 但没有任何反应

【问题讨论】:

    标签: gwt tomcat web-applications war


    【解决方案1】:

    您应该使用 temp 文件夹,而不是尝试直接写入 webapp 的部署目录:

    ServletContext app = (servlet).getServletContext();
    File tmpDir = (File)app.getAttribute("javax.servlet.context.tempdir");
    File targetFile = new File(tmpDir, "mytempfile.xml");
    ...
    

    请记住在 try/catch 块中执行所有操作并在“finally”块中正确清理您的资源,否则您会很抱歉;)

    【讨论】:

    • 实际上,我设法按照自己的方式玩弄了路径。问题是我想把我的文件写在一个公开的文件夹中。所以即使 ROOT 也无济于事......
    • 那么,您需要将临时文件写入公开可用的文件夹吗?为什么?如果您使用的是 ServletContext.getRealPath(),那么您正在编写一个损坏的应用程序。
    • 好吧,我需要将 KML 文件写入一个公开可用的文件夹中,以便可以在 gmap 上显示它们。无法解析本地 KML 文件,所以我尝试找到一个技巧来管理它
    • @mariosk89 我明白了。请注意,在已部署的 webapp 的目录结构中创建文件时会发生许多令人惊讶的事情。您已收到警告。
    • 谢谢!!! Currenlty,我使用 JSNI 并使用 geoxml3 将我的 kml 解析为字符串,这是一个 Javascript 库。我只是想找到一种更好更快的方法来做到这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 2019-08-11
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    相关资源
    最近更新 更多