Подводя итог моим исследованиям, кажется, что Java Web Start будет использовать временную метку, предоставленную через веб-сервер, чтобы определить, была ли обновлена определенная банка или нет. На поведение обновления может влиять элемент "обновление" jnlp, в котором элементы "проверяют" и "политику", которые позволяют определить, как часто выполняется проверка обновлений и запрашивается ли пользователю подтверждение обновления или нет.
Однако я не нашел возможности определить другой механизм, кроме сопоставления временной метки, чтобы определить, обновлено ли приложение или нет. На самом деле, сейчас у нас есть дискуссия, если это имеет смысл (для нас), если не самый новый, но текущая версия сервера должна быть загружена клиенту. Это также может быть, например, более старая версия сервера, которая была восстановлена на сервере, потому что ранее активная версия нового сервера была откатна. В случае отката серверного приложения каждый пользователь должен вручную очистить свой Java-кеш в данный момент, что, конечно, возможно, но не очень удобно.
Может ли Java Web Start быть настроен/принудительно всегда загружать версию приложения с сервера, если это "отличается" от локально кэшированной версии?
Я не согласен, если он точно соответствует вашим потребностям, но взгляните на веб- версию Version Download Protocol.
Подводя итог: с версией загрузки вы можете указать каждую jar-версию, которая будет использоваться в jnlp файле следующим образом:
<jar href="jackson-core.jar" version="2.0.2" />
и разверните свой jar файл на сервере с именем файла jackson-core__V2.0.2.jar
.
С помощью этого протокола webstart будет использовать только jar файлы, версия которых точно соответствует данной версии из jnlp файла. Другим преимуществом является то, что, когда указанная версия уже присутствует в локальном кеше, webstart не будет пытаться загрузить версию снова - независимо от временных меток и т.д.
Преимущества:
Недостатки: