我在WEB-INF文件夹(1000s)下有一个包含大量文件的Web应用程序。当它启动或重新启动时需要很长时间>即使Jar和TLD扫描关闭,也会持续10秒。 我甚至创建了一个自定义的JarScanner类,它没有任何作用,没有任何区别。
在启动上下文时,Tomcat还会扫描该文件夹,我可以对此做些什么吗?
答案 0 :(得分:0)
如果您将这些文件直接放在WEB-INF文件夹中(或只放在一个文件夹中),操作系统可能会花时间来理解该文件夹。许多操作系统无法很好地处理单个文件夹中的1000个文件。因此它可能无法扫描任何内容,只需打开目录即可。
你在做什么操作系统?您可能还想尝试保留压缩的WAR文件,而不是&#34;爆炸&#34;整个webapplication目录?如果我没记错的话,这可以通过在server.xml中设置<Host>
元素的unpackWARs属性来完成:
<Host name="localhost" unpackWARs="false" ...>
此外,尝试将文件分成许多不同的文件夹,或者更好的是,在webapplication目录之外。特别是如果他们只是数据文件,可能更容易让他们远离tomcat。
最后,作为对您的评论的回复,这可能会告诉您,您已成功交易启动时间以便于维护(因为您声明文件更易于维护)
答案 1 :(得分:0)
另一种选择是在webapp中添加一个名为DATA的旧版本,并在web.xml中添加一个安全约束,例如:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxxx.calculator/com.xxxxx.calculator.ResultActivity}: java.lang.NullPointerException
请注意,应在tomcat-users.xml或用户数据库(如果已设置)中设置适当的用户和角色。
通过这种方式,文件夹不会被扫描,并且在标准访问时也是安全的。