У меня есть приложение на основе jws.
Развертывается на веб-сервере, и клиент загружает файл из браузера и запускает его.
Это создает ярлык рабочего стола, и приложения работают отлично.Проблема с автоматическим обновлением файла JNLP
Теперь, если я изменить некоторые Свойства в файле JNLP на сервере, а затем запустить установленное приложение (на клиентской машине) с ярлыка на рабочем столе или из загруженного JNLP самого файла, не обновляется.
Я проверял это на версии jdk 1_6_30 и 1_7_21. Кажется, что эти два выпуска разрешили предыдущие bug, связанные с пробелами в пути кэш-памяти.
Проблема остается в Windows XP/7/8.
Исходный файл JNLP:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp codebase="path/to/fileLocation" spec="1.0+" href="demo.jnlp" >
<information>
.
.
.
<offline-allowed/>
<shortcut online="false">
<desktop/>
<menu submenu="Demo"/>
</shortcut>
</information>
<update check="always" policy="always"/>
<!--request all permissions from the application. This does not change-->
<security>
<all-permissions/>
</security>
.
.
<resources>
<!-- Here we are referring to the wrapper feature since it transitively refers to all the other plug-ins necessary -->
<extension>
name="Wrapper feature"
href="plugin_<some_random_generated_string_1>.jnlp"/>
</extension>
</resources>
.
.
.
<resources os="Windows" arch="x86">
<j2se version="1.6+" java-vm-args="-Xms400m -Xmx800m"/>
</resources>
Обновлено JNLP файл:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp codebase="path/to/fileLocation" spec="1.0+" href="demo.jnlp" >
<information>
.
.
.
<offline-allowed/>
<shortcut online="false">
<desktop/>
<menu submenu="Demo"/>
</shortcut>
</information>
<update check="always" policy="always"/>
<!--request all permissions from the application. This does not change-->
<security>
<all-permissions/>
</security>
.
.
<resources>
<!-- Here we are referring to the wrapper feature since it transitively refers to all the other plug-ins necessary -->
<extension>
name="Wrapper feature"
href="plugin_<some_random_generated_string_2>.jnlp"/>
</extension>
</resources>
.
.
<resources os="Windows" arch="x86">
<j2se version="1.6+" java-vm-args="-Xms300m -Xmx600m"/>
</resources>
Изменение в ява-VM-арг не получает отражение.
Обновление работает, если я повторно загружаю файл jnlp, а затем запускаю его. В этом случае на рабочем столе ярлык еще относится к старой, которая является боль :(
проконтролировала JNLP с помощью Джанеле
EDIT:.
Это demo.jnlp также включает в себя еще одну функцию JNLP (добавлено в blockquotes), который включает в себя все необходимые банки для приложения. Так как при каждом обновлении приложения эта функция jnlp также обновляется, но то же самое не отражается на клиенте.
Ничего в самом файле jnlp не обновляется автоматически? У меня есть динамически созданный jnlp, который включен в вышеупомянутый demo.jnlp (проверьте EDIT). Поэтому всякий раз, когда мое приложение обновляется, моя новая сборка (с использованием eclipse) генерирует новый файл jnlp, который включен в demo.jnlp. Клиент снова не получает никакого обновления. Является ли мой механизм корректной доставки приложения (jnlp ссылается на другой динамически генерируемый jnlp)? – holmes840