Я пробую простое веб-приложение в tomcat 7. У него есть вызов javascript в index.html, который загружает файл свойств. Используя приведенный ниже код, чтобы сделать звонок,
var req = new XMLHttpRequest();
req.open("GET", "xyz.properties");
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.status == 200) {
}
}
}
req.send();
Пробовал следующие варианты использования,
- Сохранил файл свойств непосредственно внутри файла войны, то есть вне WEB-INF - Это работает.
- Сохранил его под WEB-INF/classes - Не работает.
- Завернул его в банку и держал под WEB-INF/lib — не работало.
- Поместите банку под Tomcat/lib - Не работает.
Насколько я понимаю, каждый запрос ресурса/класса проходит через WebAppClassloader, который смотрит на вещи в следующем порядке:
- Ремешок для загрузки JVM
- системный загрузчик
- веб-инф/классы
- веб-инф/библиотека
- общий / библиотека
В моем реальном приложении я использую встроенный кот, и цель состоит в том, чтобы вывести (вне войны) файл свойств через банку. Отсюда и приведенные выше тесты для понимания базовой загрузки ресурсов для tomcat.
Может ли кто-нибудь пролить свет на то, чего не хватает в приведенных выше тестах. Обычно, если запрос на получение проходит через загрузчик классов, разве он не сможет найти файл во всех случаях.