-
02.09.08 23:38 #1
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.327
- Blog-Einträge
- 29
Hallo,
hier mal eine möglicher Weg wie man eine Eclipse RCP Anwendung
über Java Webstart ausführen lassen kann, veranschaulicht am Beispiel der RCP Mail
Beispielanwendung.
Dazu müssen wir das die RCP Mail Beispielanwendung erst mal eine Produktkonfiguration anlegen und dann in ein Feature Packen.
Anschließend müssen wir einen Keystore anlegen, da wir die verwendeten jars signieren müssen.
Danach exportieren wir das Feature ein Verzeichnis einer tomcat Webapp
und ändern die vom Eclipse Feature Export Wizzard generierte jnlp
(Webstart Deployment Descriptor so ab, dass er auch funktioniert...)
In meinem Beispiel verwende ich das Eclipse 3.4 SDK, java version
"1.6.0_10-beta" und Windows Vista.
1) Key Store anlegen (falls noch nicht vorhanden)
Wie man das macht findet man u.a. hier:
http://www.tutorials.de/forum/java/2...en-mit-applet-
auslesen.html
Der default Keystore befindet sich dann in eurem Home Verzeichnis als
.keystore. Bei mir: C:\Users\Tom\.keystore
2) RCP Mail Beispiel Anwendung anlegen (Name: mail)
Wie man das Beispiel anlegt findet man u.a. hier:
http://www.eclipse.org/articles/Arti...tutorial3.html
Anschließend fügen wir hier noch die Abhängigkeit zu
org.eclipse.equinox.launcher hinzu.
3) Nun legen wir eine Produkt Konfiguration an die auf Features basiert.
-> Mail Projekt markieren -> Kontextmenü -> New -> Product Configuration
-> und nennen es mail.product
-> Zum Testen klicken wir nun im mail.product Overview auf Launch Eclipse Application.
4) Nun legen wir ein Feature an (Name: mailFeature)
-> Hier sagen wir nun Intialize from a launch configuration
-> hier mail.product auswählen.
-> finish
5) Nun exportieren wir unser mailFeature
-> als Deployable Features
-> wir wählen unser mailFeature
-> wir klicken auf den Tab destination
-> dort geben wir unseren Zielordner an Beispielsweise:
-> D:\stuff\apache-tomcat-6.0.18\webapps\jws\tutorials
-> wir klicken auf den Tab options
-> "Package as individual Jar archives"
-> wir klicken auf den Tab Jar signing
-> "Sign the jar archives using a keystore" auswählen
-> entsprechende Keystore Location / Alias und Passwort eingeben.
-> wir klicken auf den Tab java web start
-> "Create JNLP manifests for the jar archives" auswählen
-> Site URL: http://meinHostName:8080/jws/tutorials
-> Bei JRE Version gebt ihr die gewünschte Mindest Java Version an:
-> Im Beispiel 1.6+
-> finish
6) Nun starten wir unseren Webserver (in meinem Fall tomcat)
Anschließend wurde im Verzeichnis D:\stuff\apache-tomcat-6.0.18\webapps\jws\tutorials\features
Die Datei mailFeature_1.0.0.jnlp erzeugt.
Diese kopieren wir nach D:\stuff\apache-tomcat-6.0.18\webapps\jws\tutorials und benennen sie in start_mail.jnlp um.
Diese Datei hat folgenden Inhalt:
Code xml:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
<?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+" codebase="http://meinHostName:8080/jws/tutorials/start.jnlp"> <information> <title>MailFeature Feature</title> <offline-allowed/> </information> <security> <all-permissions/> </security> <component-desc/> <resources> <j2se version="1.6+" /> </resources> <resources> <jar href="plugins/com.ibm.icu_3.8.1.v20080530.jar"/> <jar href="plugins/javax.servlet_2.4.0.v200806031604.jar"/> <jar href="plugins/mail_1.0.0.jar"/> <jar href="plugins/org.eclipse.core.commands_3.4.0.I20080509-2000.jar"/> <jar href="plugins/org.eclipse.core.contenttype_3.3.0.v20080604-1400.jar"/> <jar href="plugins/org.eclipse.core.databinding_1.1.0.I20080527-2000.jar"/> <jar href="plugins/org.eclipse.core.expressions_3.4.0.v20080603-2000.jar"/> <jar href="plugins/org.eclipse.core.jobs_3.4.0.v20080512.jar"/> <jar href="plugins/org.eclipse.core.runtime_3.4.0.v20080512.jar"/> <jar href="plugins/org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502.jar"/> <jar href="plugins/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20080610.jar"/> <jar href="plugins/org.eclipse.equinox.app_1.1.0.v20080421-2006.jar"/> <jar href="plugins/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar"/> <jar href="plugins/org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar"/> <jar href="plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.100.v20080509-1800.jar"/> <jar href="plugins/org.eclipse.equinox.preferences_3.2.200.v20080421-2006.jar"/> <jar href="plugins/org.eclipse.equinox.registry_3.4.0.v20080516-0950.jar"/> <jar href="plugins/org.eclipse.help_3.3.100.v20080610.jar"/> <jar href="plugins/org.eclipse.jface_3.4.0.I20080606-1300.jar"/> <jar href="plugins/org.eclipse.jface.databinding_1.2.0.I20080515-2000a.jar"/> <jar href="plugins/org.eclipse.osgi_3.4.0.v20080605-1900.jar"/> <jar href="plugins/org.eclipse.osgi.services_3.1.200.v20071203.jar"/> <jar href="plugins/org.eclipse.swt_3.4.0.v3448f.jar"/> <jar href="plugins/org.eclipse.swt.win32.win32.x86_3.4.0.v3448f.jar"/> <jar href="plugins/org.eclipse.ui_3.4.0.I20080610-1200.jar"/> <jar href="plugins/org.eclipse.ui.workbench_3.4.0.I20080606-1300.jar"/> </resources> </jnlp>
Versucht man nun die Anwendung via Webstart über die URL: http://localhost:8080/jws/tutorials/start_mail.jnlp
aufzurufen sieht man, dass die generierte jnlp Datei doch noch nicht vollständig / lauffähig ist.
Wir müssen nun noch:
-> ein <vendor>-Element hinzufügen,
-> das <jar href="plugins/org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar"/> als ERSTEN <jar>-Eintrag der ressources Liste angeben (sonst startet es nicht -> Klasse org.eclipse.equinox.launcher.WebStartMain wird nicht gefunden ) Hier ist JWS anscheinend von der Reihenfolge abhängig
-> Die main-class und Eclipse / Equinox Spezifische Properties mitgeben:
Code xml:1 2 3 4 5 6 7 8 9 10 11 12 13 14
<application-desc main-class="org.eclipse.equinox.launcher.WebStartMain"> <argument>-nosplash</argument> </application-desc> <resources> <j2se version="1.6+" /> <property name="eclipse.product" value="mail.product"/> <property name="osgi.instance.area" value="@user.home/Application Data/mail"/> <property name="osgi.configuration.area" value="@user.home/Application Data/mail"/> </resources>
Hier das komplette (funktionierende JNLP File)
start_mail.jnlp:
Code xml:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
<?xml version="1.0" encoding="UTF-8"?> <jnlp spec="1.0+" codebase="http://meinHostName:8080/jws/tutorials"> <information> <title>MailFeature Feature</title> <vendor>tutorials.de</vendor> <offline-allowed/> </information> <security> <all-permissions/> </security> <component-desc/> <application-desc main-class="org.eclipse.equinox.launcher.WebStartMain"> <argument>-nosplash</argument> </application-desc> <resources> <j2se version="1.6+" /> <property name="eclipse.product" value="mail.product"/> <property name="osgi.instance.area" value="@user.home/Application Data/mail"/> <property name="osgi.configuration.area" value="@user.home/Application Data/mail"/> </resources> <resources> <jar href="plugins/org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar"/> <jar href="plugins/com.ibm.icu_3.8.1.v20080530.jar"/> <jar href="plugins/javax.servlet_2.4.0.v200806031604.jar"/> <jar href="plugins/mail_1.0.0.jar"/> <jar href="plugins/org.eclipse.core.commands_3.4.0.I20080509-2000.jar"/> <jar href="plugins/org.eclipse.core.contenttype_3.3.0.v20080604-1400.jar"/> <jar href="plugins/org.eclipse.core.databinding_1.1.0.I20080527-2000.jar"/> <jar href="plugins/org.eclipse.core.expressions_3.4.0.v20080603-2000.jar"/> <jar href="plugins/org.eclipse.core.jobs_3.4.0.v20080512.jar"/> <jar href="plugins/org.eclipse.core.runtime_3.4.0.v20080512.jar"/> <jar href="plugins/org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502.jar"/> <jar href="plugins/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20080610.jar"/> <jar href="plugins/org.eclipse.equinox.app_1.1.0.v20080421-2006.jar"/> <jar href="plugins/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar"/> <jar href="plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.100.v20080509-1800.jar"/> <jar href="plugins/org.eclipse.equinox.preferences_3.2.200.v20080421-2006.jar"/> <jar href="plugins/org.eclipse.equinox.registry_3.4.0.v20080516-0950.jar"/> <jar href="plugins/org.eclipse.help_3.3.100.v20080610.jar"/> <jar href="plugins/org.eclipse.jface_3.4.0.I20080606-1300.jar"/> <jar href="plugins/org.eclipse.jface.databinding_1.2.0.I20080515-2000a.jar"/> <jar href="plugins/org.eclipse.osgi_3.4.0.v20080605-1900.jar"/> <jar href="plugins/org.eclipse.osgi.services_3.1.200.v20071203.jar"/> <jar href="plugins/org.eclipse.swt_3.4.0.v3448f.jar"/> <jar href="plugins/org.eclipse.swt.win32.win32.x86_3.4.0.v3448f.jar"/> <jar href="plugins/org.eclipse.ui_3.4.0.I20080610-1200.jar"/> <jar href="plugins/org.eclipse.ui.workbench_3.4.0.I20080606-1300.jar"/> </resources> </jnlp>
Ruft man nun im Browser die entsprechende URL zum JNLP Deskriptor auf:
Beispielsweise: http://meinHostName:8080/jws/tutorials/start_mail.jnlp
So wird Java Web Start aktiv, lädt die Jars runter und fragt nach ob dem
Zertifkat der Anwendung getraut werden soll. Bestätigt man dies sollte
die RCP Mail Beispielanwendung ohne zu murren auf dem Bildschirm erscheinen.
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
12.09.08 10:00 #2
- Registriert seit
- Nov 2007
- Beiträge
- 28
Hallo Thomas,
meines Wissens müssen jar-files, die man via Webstart benutzen will, signiert werden.
Gibt es da eine allgemeine Lösung, wie man auch unsignierte jars von Drittanbietern benutzen kann?
Ich denke mir, dass es Probleme mit der Lizens geben kann, wenn man die jars von Drittanbietern signiert?!
-
14.11.08 21:55 #3
- Registriert seit
- Nov 2008
- Beiträge
- 1
Hallo Thomas,
um erste Erfahrungen mit javaws und RCP zu sammeln habe auch ich dein Beispiel eins zu eins nachgebaut. Leider ohne Erfolg...
Die Webstart Applikation wird gestart und auch im Cache gespeichert. Ich werde auch nach der Authentifizierung gefragt, jedoch passiert danach garnichts mehr!
Leider weiss ich nicht was ich Falsch gemacht habe. Vielleicht kannst du mir helfen.
(Ich nutze auch java 1.6 und eclipse sdk 3.4)
Hier mein Code:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="file:C:/site">
<information>
<title>MailFeature Feature</title>
<vendor>TestVenodr</vendor>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<component-desc/>
<application-desc main-class="org.eclipse.equinox.launcher.WebStartMain">
<argument>-nosplash</argument>
</application-desc>
<resources>
<j2se version="1.6+" />
<property name="eclipse.product" value="mail.product"/>
<property name="osgi.instance.area" value="@user.home/Application Data/mail"/>
<property name="osgi.configuration.area" value="@user.home/Application Data/mail"/>
</resources>
<resources>
<jar href="plugins/org.eclipse.equinox.launcher_1.0.100.v20080509-1800.jar"/>
<jar href="plugins/com.ibm.icu_3.8.1.v20080530.jar"/>
<jar href="plugins/javax.servlet_2.4.0.v200806031604.jar"/>
<jar href="plugins/mail_1.0.0.jar"/>
<jar href="plugins/org.eclipse.core.commands_3.4.0.I20080509-2000.jar"/>
<jar href="plugins/org.eclipse.core.contenttype_3.3.0.v20080604-1400.jar"/>
<jar href="plugins/org.eclipse.core.databinding_1.1.0.I20080527-2000.jar"/>
<jar href="plugins/org.eclipse.core.expressions_3.4.0.v20080603-2000.jar"/>
<jar href="plugins/org.eclipse.core.jobs_3.4.0.v20080512.jar"/>
<jar href="plugins/org.eclipse.core.runtime_3.4.0.v20080512.jar"/>
<jar href="plugins/org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502.jar"/>
<jar href="plugins/org.eclipse.core.runtime.compatibility.registry_3.2.200.v20080610.jar"/>
<jar href="plugins/org.eclipse.equinox.app_1.1.0.v20080421-2006.jar"/>
<jar href="plugins/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar"/>
<jar href="plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.100.v20080509-1800.jar"/>
<jar href="plugins/org.eclipse.equinox.preferences_3.2.200.v20080421-2006.jar"/>
<jar href="plugins/org.eclipse.equinox.registry_3.4.0.v20080516-0950.jar"/>
<jar href="plugins/org.eclipse.help_3.3.100.v20080610.jar"/>
<jar href="plugins/org.eclipse.jface_3.4.0.I20080606-1300.jar"/>
<jar href="plugins/org.eclipse.jface.databinding_1.2.0.I20080515-2000a.jar"/>
<jar href="plugins/org.eclipse.osgi_3.4.0.v20080605-1900.jar"/>
<jar href="plugins/org.eclipse.osgi.services_3.1.200.v20071203.jar"/>
<jar href="plugins/org.eclipse.swt_3.4.0.v3448f.jar"/>
<jar href="plugins/org.eclipse.swt.win32.win32.x86_3.4.0.v3448f.jar"/>
<jar href="plugins/org.eclipse.ui_3.4.0.I20080610-1200.jar"/>
<jar href="plugins/org.eclipse.ui.workbench_3.4.0.I20080606-1300.jar"/>
</resources>
</jnlp>
Danke!Geändert von freshmaker (14.11.08 um 21:59 Uhr)
Ähnliche Themen
-
Eclipse Mail RCP Beispiel in eine RAP (Rich Ajax Platform) Webanwendung umwandeln
Von Thomas Darimont im Forum JavaAntworten: 2Letzter Beitrag: 22.08.10, 11:29 -
Java WebStart - JNLP sofort ausführen
Von du ciel im Forum JavaAntworten: 0Letzter Beitrag: 10.06.08, 14:17 -
Eclipse RCP Anwendung über URL starten.
Von Thomas Darimont im Forum Java Technology NewsAntworten: 0Letzter Beitrag: 04.06.08, 13:50 -
Beispiel zur Dependency Injection in Eclipse RCP View mit AspectJ und Spring
Von Thomas Darimont im Forum JavaAntworten: 8Letzter Beitrag: 17.02.08, 11:04 -
Java Webstart und Eclipse RCP...
Von Thomas Darimont im Forum JavaAntworten: 0Letzter Beitrag: 15.10.04, 16:09




Zitieren
Login





Lesezeichen