2015-05-01 3 views
0

У меня есть Webapp с большим количеством файлов в папке WEB-INF (1000). Когда он запускается или перезапускается, требуется длительное время> 10 с даже при выключении сканирования Jar и TLD. Я даже создал пользовательский класс JarScanner, который ничего не делает, что не имеет значения.Slow Tomcat Webapp запускается, когда много файлов в WEB-INF

Что еще в Tomcat сканирует эту папку при запуске контекста и могу ли я что-нибудь с этим сделать?

+0

Зачем вам 1000 файлов. Являются ли эти классы файлов? Почему вы не можете поместить его в базу данных, если они не являются классами. –

+0

Это файлы данных (а не классы). Являются ли эти файлы экземпляров проще в обслуживании. – Packs

ответ

0

Если у вас есть эти файлы непосредственно в папке WEB-INF (или просто в одном), ОС может занять свое время, чтобы понять эту папку. Многие файлы в одной папке не обрабатываются многими операционными системами. Таким образом, он может ничего не сканировать, а просто открыть каталог.

В какой ОС вы находитесь? Возможно, вы захотите также попытаться сохранить файл WAR с застежкой-молнией вместо «взрыва» всего каталога webapplication? Это может быть сделано путем установки атрибута unpackWARs из <Host> элемента в server.xml, если я правильно помню:

<Host name="localhost" unpackWARs="false" ...> 

Кроме того, попытайтесь отделить файлы в разные папки, или, еще лучше, вне WebApplication каталог. Особенно, если это всего лишь файлы данных, может быть проще удержать их от tomcat.

И, наконец, в ответ на Ваш комментарий, это может сказать вам, что вы успешно торговал время запуска для удобства обслуживания (как вы утверждаете, что файлы легче поддерживать)

+0

Спасибо. Я выложу их вне папки webapp. Я делал это раньше, но думал, что это может быть аккуратно все в одном месте, а затем обнаружил, что tomcat (хотя Яспер, я считаю) просматривает всю структуру папок. – Packs

0

Другой вариант заключается в добавлении пожилым в веб-приложение под названием что-то вроде DATA, а также добавить ограничение безопасности к нему в web.xml, например:

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>secure</web-resource-name> 
     <url-pattern>/DATA/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>data</role-name> 
    </auth-constraint> 
</security-constraint> 
<security-role> 
    <role-name>data</role-name> 
</security-role> 

Примечание соответствующий пользователь и роль должны быть настройки, либо в TOMCAT пользователей. xml или пользовательскую базу данных, если они установлены.

Таким образом, папка не сканируется и также защищена от стандартного доступа.