Вопрос 1: Могу ли я спросить, в чем разница между развертыванием java webapp с ним WAR файлом и просто копированием/вставкой папки сборки в папку tomcat webapp?
Вопрос 2. Как-то мне сказали развернуть мой проект, просто переименовав папку /build/web в /build/, затем скопируйте и вставьте эту папку в папку tomcat/webapp. Tomcat действительно обслуживал веб-приложение, и я мог получить к нему доступ через url. Но проблема в том, что я подозреваю, что мои системные переменные не были установлены. Я запускаю сервлет и помещаю этот код в этот init (ServletConfig config) метод:
System.setProperty("LogPath","D:/Test/logs");
И делаю это в моих log4j.properties
log4j.appender.file.FILE=${LogPath}/wrapper.log
wrapper.log не найден в указанном каталоге, но stdout.log находится в папке tomcat/logs.
Я уверен, что метод init() был запущен, потому что у меня есть кварцевый планировщик. Я подозреваю, что мой System.setProperty не был установлен. Любой намек?
Обновление: со всем тем же исходным кодом у меня нет проблем, если я развертываю файл WAR. $ {LogPath} в log4j.properties работает должным образом.
Позвольте мне ответить вам на первый вопрос.
WAR файл - это zip-архив с другим именем. Когда вы размещаете этот файл на сервере Tomcat, он распаковывает этот файл в свою папку, как вы делали бы это с помощью copy-paste. Если вы просто разрабатываете свой собственный проект в своей собственной среде, и вы не хотите его распространять, вам не нужно создавать военный файл. Но если вы хотите распространять этот проект, я рекомендую вам создать военный файл. Один файл легче отправить.
Подробнее о Википедии http://en.wikipedia.org/wiki/WAR_%28file_format%29