Um die Applikation mit Rwt als Webapplikation zu starten,
                    betrachten wir das Modul
                    org.jowidgets.helloworld.starter.rwt und dort
                    zunächst das folgende pom.xml.
                  
         
1 <project 2 xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 5 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 6 <modelVersion>4.0.0</modelVersion> 7 8 <artifactId>org.jowidgets.helloworld.starter.rwt</artifactId> 9 <packaging>war</packaging> 10 11 <parent> 12 <groupId>org.jowidgets.helloworld</groupId> 13 <artifactId>org.jowidgets.helloworld.parent</artifactId> 14 <version>0.0.1-SNAPSHOT</version> 15 <relativePath>../parent/pom.xml</relativePath> 16 </parent> 17 18 <dependencies> 19 20 <!-- The ui technology independend hello world module --> 21 <dependency> 22 <groupId>org.jowidgets.helloworld</groupId> 23 <artifactId>org.jowidgets.helloworld.common</artifactId> 24 <version>0.0.1-SNAPSHOT</version> 25 </dependency> 26 27 <!-- The default implementation of the jowidgets api --> 28 <dependency> 29 <groupId>org.jowidgets</groupId> 30 <artifactId>org.jowidgets.impl</artifactId> 31 <version>${jowidgets.version}</version> 32 </dependency> 33 34 <!-- The RWT implementation of the jowidgets spi --> 35 <dependency> 36 <groupId>org.jowidgets</groupId> 37 <artifactId>org.jowidgets.spi.impl.rwt</artifactId> 38 <version>${jowidgets.version}</version> 39 </dependency> 40 41 <!-- The RWT dependency --> 42 <dependency> 43 <groupId>org.eclipse</groupId> 44 <artifactId>org.eclipse.rap.rwt</artifactId> 45 <version>2.0.0.20130205-1612</version> 46 </dependency> 47 48 </dependencies> 49 50 <build> 51 <finalName>helloWorldRwt</finalName> 52 </build> 53 54 </project>
Ab Zeile 20 wird das common Modul der HelloWorld Applikation hinzugefügt. Ab Zeile 27 folgt die Defaultimplementierung der jowidgtes API und ab Zeile 34 wird die SPI Implementierung für Rwt hinzugefügt.
Dadurch ergeben sich die folgenden (jowidgets internen) transienten Modulabhängigkeiten:
Gemeinsamer Code der von allen SPI Implementierungen genutzt wird.
Die Swt SPI Implementierung.
Die Rwt SPI Implementierung
Selbstverständlich wird auch eine externe Abhängigkeit auf Rwt benötigt (ab Zeile 41).
Die Swt SPI Implementierung hat zudem eine externe Abhängigkeit auf MigLayout für Swt.
                    Betrachten wir als nächstes die Klassen
                    HelloWorldConfiguration und
                    HelloWorldStarterRwt
                  
         
  1  package org.jowidgets.helloworld.starter.rwt;
  2  
  3  import java.util.HashMap;
  4  import java.util.Map;
  5  
  6  import org.eclipse.rap.rwt.application.Application;
  7  import org.eclipse.rap.rwt.application.Application.OperationMode;
  8  import org.eclipse.rap.rwt.application.ApplicationConfiguration;
  9  import org.eclipse.rap.rwt.client.WebClient;
 10  
 11  public final class HelloWorldConfiguration implements ApplicationConfiguration {
 12  
 13      @Override
 14      public void configure(final Application application) {
 15          application.setOperationMode(OperationMode.SWT_COMPATIBILITY);
 16          final Map<String, String> properties = new HashMap<String, String>();
 17          properties.put(WebClient.PAGE_TITLE, "Hello World");
 18          application.addEntryPoint("/HelloWorld", HelloWorldStarterRwt.class, properties);
 19      }
 20  }  1  package org.jowidgets.helloworld.starter.rwt;
  2  
  3  import org.jowidgets.api.toolkit.Toolkit;
  4  import org.jowidgets.helloworld.common.HelloWorldApplication;
  5  import org.jowidgets.spi.impl.rwt.RwtEntryPoint;
  6  
  7  public final class HelloWorldStarterRwt extends RwtEntryPoint {
  8  
  9      //URL: http://127.0.0.1:8080/helloWorldRwt/HelloWorld
 10      public HelloWorldStarterRwt() {
 11          super(new Runnable() {
 12              @Override
 13              public void run() {
 14                  Toolkit.getApplicationRunner().run(new HelloWorldApplication());
 15              }
 16          });
 17      }
 18  
 19  }In Zeile 14 wird analog zu Swing und Swt die Applikation mit Hilfe des ApplicationRunners gestartet.
Für die Webapplikation ist zudem noch die folgende web.xml Datei erforderlich.
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app 3 xmlns="http://java.sun.com/xml/ns/j2ee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 6 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 7 version="2.4"> 8 9 <display-name>Hello World Rwt</display-name> 10 11 <context-param> 12 <param-name>org.eclipse.rap.applicationConfiguration</param-name> 13 <param-value>org.jowidgets.helloworld.starter.rwt.HelloWorldConfiguration</param-value> 14 </context-param> 15 16 <listener> 17 <listener-class>org.eclipse.rap.rwt.engine.RWTServletContextListener</listener-class> 18 </listener> 19 20 <servlet> 21 <servlet-name>HelloWorld</servlet-name> 22 <servlet-class>org.eclipse.rap.rwt.engine.RWTServlet</servlet-class> 23 </servlet> 24 25 <servlet-mapping> 26 <servlet-name>HelloWorld</servlet-name> 27 <url-pattern>/HelloWorld</url-pattern> 28 </servlet-mapping> 29 </web-app>
                    Um die Applikation zu starten, muss zunächst das
                    helloWorldRwt.war gebaut werden. Dazu kann
                    man in der Konsole im Verzeichnis
                    helloworld/parent den Befehl
                  
         
    mvn clean install
                    eingeben. Im Ordner
                    helloworld/org.jowidgets.helloworld.starter.rwt/target
                    findet sich dann die Datei helloWorldRwt.war.
                    Diese kann zum Beispiel in einem
                    Tomcat deployed
                    werden. Macht man das lokal, kann man die Applikation dann mit
                    der Url:
                    http://127.0.0.1:8080/helloWorldRwt/HelloWorld
                    im Browser starten.
                  
         
Die folgende Abbildung zeigt das Hello World Fenster im Firefox Browser.
Für ein tieferes Verständnis von Rwt sei auf die RAP / RWT Dokumentation verwiesen.
Weitere Information zum Thema jowidgets und RAP / RWT finden sich im Abschnitt Jowidgets und RAP