Thread View: pl.comp.lang.java
2 messages
2 total messages
Started by Ronald Kuczek
Wed, 16 Oct 2013 14:26
JRE 7u45 problem z przekazywaniem parametrów przez JNLP
Author: Ronald Kuczek
Date: Wed, 16 Oct 2013 14:26
Date: Wed, 16 Oct 2013 14:26
65 lines
3263 bytes
3263 bytes
Cześć,
Walczę z tym od rana i tak jakby pomysły mi się kończą.
Dla uproszczenia, mamy prostą aplikację:
public class JTestFrame extends JFrame {
JLabel toShow = new JLabel("var:" +
System.getProperty("mojaaplikacja.testproperty"));
public JTestFrame() {
setContentPane(toShow);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
pack();
setVisible(true);
}
public static void main(String[] args) {
new JTestFrame();
}
Którą pakujemy do jar-a i uruchamiamy przez JNLP.
Do wczoraj, tj. do wersji jre 7u40 bez problemu uruchamiała się takim kodem:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://10.0.10.230/webstart/app/"
href="jnlpproblem.jnlp">
<information>
<title>MyApp JNLP</title>
<vendor>MyAppFirma</vendor>
<homepage href="http://www.kuczek.pl"/>
<description>MyAppFrame JNLP</description>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.7" initial-heap-size="256M" max-heap-size="512M"
java-vm-args="-Xss16m"/>
<jar href="jars/jnlpproblem/jnlpproblems.jar" main="true"
download="eager"/>
<property name="mojaaplikacja.testproperty" value="to jest wartosc
testowej property" />
</resources>
<application-desc main-class="pl.testclient.jnlpproblems.JTestFrame">
</application-desc>
</jnlp>
Po przekazaniu wartości mojaaplikacja.testproperty na testowym frame
była wyświetlana. Niestety, bez zmiany literki w kodzie, po uruchomieniu
tego samego zestawu do aplikacji przekazywany jest null.
Czyli -w jre7u45 nie są przekazywane parametry z jnlp <property>.
Dodam, że wygenerowany jar jest podpisywany certyfikatem self-signed ale
dotychczas nie stanowiło to problemu. Walczył ktoś z tym ?
Jedyne rozwiązanie jakie na razie podpowiadali na jednym z forów było
podpisanie jnlp (tj. umieszczenie go w pliku jar pod
JNLP-INF/APPLICATION.JNLP) kompletnie mnie nie urządza, bo musiałbym dla
każdego klienta generować osobnego jar-a z plikiem jnlp i specyficznymi
dla niego ustawieniami dotychczas przekazywanymi przez <property> w
jnlp. Jakieś pomysły ?
Pozdrawiam
Rony
Pozdrawiam
Rony
Re: JRE 7u45 problem z przekazywaniem parametrów przez JNLP
Author: Ronald Kuczek
Date: Wed, 16 Oct 2013 14:52
Date: Wed, 16 Oct 2013 14:52
22 lines
1998 bytes
1998 bytes
[...] W międzyczasie natrafiłem na rozwiązanie, może komuś też się przyda. Szkoda tylko, że Oracle nie wspomniał nic w opisie zmian do wersji. Okazuje się, że od wersji JRE 7U45 nie są przekazywane parametry, które są uznawane jako "insecure". Znalazłem trzy proponowane rozwiązania: 1. Podpisać plik jnlp (JNLP-INF/APPLICATION.JNLP) albo (JNLP-INF/APPLICATION_TEMPLATE.JNLP). Rozwiązanie niepraktyczne dla kogoś, kto (tak jak ja) musi dopasowywać wartości dynamicznie. 2. Używać "bezpiecznych" properties, czyli zmienić w pliku jnlp swoje nazwy właściwości dodając im prefix "jnlp." a następnie dopasować kod swojej aplikacji tak, by odpowiednio te parametry czytać/ustawiać. 3. Użyć "bezpiecznych" properties - w pliku jnlp zmienić swoje parametry nadając im prefix "jnlp.mojaaplikacja." a następnie przy starcie czytać wszystkie properties zaczynające się od "jnlp.mojaaplikacja" i ustawiać odpowiednie wartości. Pozdrawiam Rony
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads