我正在创建一个应用程序,它在我的WebContent文件夹中生成一些文件/目录,我希望Tomcat能够提供这些静态文件(一些后台作业的日志)。
然而,Tomcat似乎无法识别新文件(可能是新文件夹中的文件),并且它不断为它们返回404。 Tomcat重启后,文件服务正常。
我在Eclipse中使用Tomcat 7.0。这些文件由默认的servlet提供。
我认为Tomcat最初会以某种方式遍历WebContent,它只是使用这个缓存的文件列表来加快操作速度。有没有办法禁用这种行为(或者可能:提供其他进程生成的新文件的正确方法是什么)?
感谢您的帮助/建议。我是Tomcat的新手,所以我可能会忽略一些基本的东西。
更新(基于已接受的解决方案)
webapp文件夹中似乎存在一些二元性。一个是在Eclipse项目中(由getServletContext().getRealPath
返回,另一个默认位于Eclipse元数据中的某个位置,可以在wtp.deploy
属性的启动配置中看到。这些文件以某种方式从Eclipse复制到部署目录。当我开始在wtp.deploy
下生成我的文件时,问题得到解决。
但是,我仍然不知道如何以正确的方式解决这个问题,这将在Eclipse WTP和正常的Tomcat条件下工作。
更新
最终解决方案是完全避免DefaultServlet
。我使用基于http://balusc.blogspot.com/2009/02/fileservlet-supporting-resume-and.html的FileServlet
,它运行正常。
答案 0 :(得分:1)
我对Netbeans有类似的经验 - 它通常将编译后的文件放入新文件夹并与该文件夹一起使用。不确定你是否属于这种情况;但如果放在正确的文件夹中,文件应该可用。