Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > JavaWebStart + настроеки приложения


Автор: Evgenic 10.8.2009, 17:37
День добрый.
Есть приложение, доставляемое пользователю через JWS. Мне требуется как-то настраивать это приложение. Настройки как-то изменяются и хранятся на сервере. Нужно получить эти настройки при запуске приложения на клиенте. Использую GlassFish.

Подскажите как все это можно организовать. В JWS это мой первый проект, поэтому даже не знаю как и что здесь можно сделать.

Автор: Maksym 10.8.2009, 19:38
Evgenic
Если JWS, значит приложение ты дистрибутируешь с помощью JNLP.
Указываешь нужные параметры с помощью тега <property /> (в моем случае это ws.url). JWS положит их в system properties.
Код

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jnlp SYSTEM "http://java.sun.com/dtd/JNLP-6.0.dtd">
<jnlp spec="1.0+" codebase="http://127.0.0.1:8080/">
    <information>
        <title>Title</title>
        <vendor>Vendor</vendor>
        <homepage href="./index.html" />
        <offline-allowed />        
    </information>
    <security>
        <all-permissions />
    </security>
    <resources>
        <j2se version="1.6" max-heap-size="256m"/>
        <property name="ws.url" value="127.0.0.1" /> 
    </resources>
    <application-desc main-class="my.Main" />
</jnlp>

И получаешь параметр в коде, соответственно, как system property:
Код

String value = System.getProperty("ws.url");

Удобно, поскольку при запуске из командной строки (при разработке/отладке вне JWS), system property задается так же легко:
Код

-Dws.url=127.0.0.1

Автор: Evgenic 11.8.2009, 09:15
Спасибо. Отличное решение, я так и сделаю.
Не подскажите, мне для общего понимания, как прописать в JNLP необходимость скачивать на клиента какой-нить файл.

Автор: Maksym 11.8.2009, 13:35
Цитата(Evgenic @  11.8.2009,  08:15 Найти цитируемый пост)
Не подскажите, мне для общего понимания, как прописать в JNLP необходимость скачивать на клиента какой-нить файл. 

Какой? и зачем? smile
Мне понадодобилось передать на клиента собственно мое приложение (MyApplication.jar) и все его зависимости. В дополненном примере ниже я говорю JWS, что необходимо загрузить на клиента мой MyApplication.jar (содержит класс my.Main) и используемый им commons-beanutils-1.8.0.jar (путь задается относительно codebase).
Код

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jnlp SYSTEM "http://java.sun.com/dtd/JNLP-6.0.dtd">
<jnlp spec="1.0+" codebase="http://127.0.0.1:8080/">
    <information>
        <title>Title</title>
        <vendor>Vendor</vendor>
        <homepage href="./index.html" />
        <offline-allowed />        
    </information>
    <security>
        <all-permissions />
    </security>
    <resources>
        <j2se version="1.6" max-heap-size="256m"/>
        <property name="ws.url" value="127.0.0.1" /> 
        <jar href="MyWebApplication/MyApplication.jar" />
        <jar href="MyWebApplication/lib/commons-beanutils-1.8.0.jar" />
    </resources>
    <application-desc main-class="my.Main" />
</jnlp>

Насчет деталей советую почитать http://java.sun.com/javase/technologies/desktop/javawebstart/download-spec.html.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)