Измените web.xml после развертывания
Желательно ли после развертывания изменить файл web.xml (или, по сути, любой другой файл) на сервере приложений? ВСЕ ли серверы приложений выставляют свою структуру развертывания / каталогов?
Я бы предпочел вносить изменения локально, перестраивать войну (или год и т. Д.) И повторно развертывать приложение.
1 ответ
Что касается вашего первого вопроса, это зависит от типа ресурса. Для ресурса classpath вы можете переопределить файл в любом каталоге, который имеет более высокий приоритет в механизме загрузки классов вашего сервера приложений (например, $CATALINA_HOME/lib, если вы используете Tomcat). Для xml-файла, такого как web.xml, вы можете объявить внешнюю сущность в упакованном файле с абсолютным путем, но вы должны быть уверены, что файл будет присутствовать на целевом сервере. Например, ваш упакованный файл web.xml может выглядеть так:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document [
<!ENTITY webEntity SYSTEM 'C:\Temp\web.xml'>
]>
&webEntity;
Таким образом, фактическим содержимым файла web.xml будет содержимое файла C:\Temp\web.xml.
Короче говоря, нет официального способа сделать это, но есть хитрости. Я предполагаю, что люди делают индивидуальную упаковку для каждой производственной площадки. Есть несколько способов автоматизировать это с Maven, таких как наложение войны или классификаторы. Вот интересная ссылка.
Что касается вашего второго вопроса, я бы не стал полагаться на это предположение. Изменить разнесенный ресурс на сервере Tomcat довольно просто, но на JBoss AS все не так просто.