Измените 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 все не так просто.

Другие вопросы по тегам