HotSwapAgent: как использовать его для классов внутри WAR-файлов?
Поэтому я нашел эту библиотеку под названием hotswapagent, и она позволяет вам выполнять горячую замену приложения, которое вы развертываете в контейнере приложения. Он прекрасно работает с конфигурациями XML и файлами классов, но для двух случаев:
В некоторых WAR вы можете использовать другой jar для 'utils' и сохранять его как отдельную зависимость для основной WAR. Как мне заменить файлы классов в моем банке, это зависимость от моей основной WAR?
Как настроить контейнеры веб-приложений, такие как Tomcat/Weblogic, на принятие изменений во внутренних банках во время выполнения?
1 ответ
Создайте файл hotswap-agent.properties в каталоге ресурсов (например: src/main/resources
) вашего основного модуля. В этом файле установите extraClasspath
в папку целевого класса модуля utils. Это будет выглядеть примерно так:extraClasspath=<path to utils module>/target/classes
Вот образец hotswap-agent.properties
файл со значениями по умолчанию и комментариями, поясняющими каждую переменную: https://github.com/HotswapProjects/HotswapAgent/blob/master/hotswap-agent-core/src/main/resources/hotswap-agent.properties
Теперь, когда вы развертываете ваше веб-приложение, HotSwapAgent загружает дополнительные классы в путь к классам, и вы сможете выполнять горячую замену кода в них. Я предполагаю, что вам не нужно выполнять вторую часть вопроса, если вы уже можете перезагрузить классы с помощью HotSwapAgent.