Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2006  »  04  »  Schnellzug ins Web  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

© photocase.com

Webanwendungen mit Trails entwickeln

Schnellzug ins Web

von Ramon Wartala
Erschienen im Linux-Magazin 2006/04

Trails mischt eine abgestimmte Sammlung bewährter J2EE-Frameworks mit Ideen von Ruby on Rails und minimiert so die manuelle Programmierarbeit. Diese Kombination bringt Java-basierte Webapplikationen leicht und schnell auf die richtige Schiene.

Irgendwann im Frühsommer 2005 war es, als Jim Weirich seinem Freund Chris Nelson bei einem Treffen der Java-Usergroup von Cincinnati das Video von Ruby on Rails [1] vorspielte. Chris war beeindruckt von dem schnellen und einfachen Weg, Webanwendungen zu entwickeln, und fasste den Entschluss, dies auch in seiner Lieblingsprogrammiersprache Java hinzubekommen.

Nach einigen Monaten war es so weit: Chris stellte die erste Version von Trails [2] fertig. Der Name Trails lehnt sich an Rails an und setzt noch das T von Tapestry [3] davor. Seine Kernidee ist es, die Entwicklung von J2EE-Anwendungen zu vereinfachen und zu beschleunigen. Chris wollte nicht das Rad neu erfinden und setzte bei der Entwicklung von Trails auf bereits erprobte Frameworks wie Apache Ant, Tapestry, Aspect-J [4], Spring [5] und den objektrelationalen Mapper Hibernate [6].

Voraussetzung, um mit Trails arbeiten zu können, sind ein installiertes Ant und das fast 20 MByte große Trails-Archiv von [2], das alle weiteren Frameworks enthält. Tomcat 5.5 als Application Server sollte bereits installiert haben, wer sofort loslegen möchte. Ist »ANT_HOME« gesetzt und Trails in ein entsprechendes Verzeichnis entpackt, kann mit Hilfe von »ant install-apt« die nötige Ant-Bibliothek für Trails in das Ant-Lib-Verzeichnis installiert werden.

Schnellstart

Ein Beispiel demonstriert im Folgenden die Verwendung von Trails: eine kleine Webanwendung, die Videofilme und die entsprechenden Schauspieler verwaltet. Trails generiert das Skelett einer solchen Anwendung (in Rails auch als Scaffolding bezeichnet) vollautomatisch und bestückt es mit Bibliotheken und Konfigurationsdateien. Dazu genügt es, im Trails-Verzeichnis »ant create-project« auszuführen (Abbildung 1).


Abbildung 1: Mit Trails lassen sich Java-Webanwendungen wie diese Schauspielerdatenbank fast ohne manuelles Programmieren erstellen.

Nach dem Eingeben des Basisverzeichnisses und des Namens der neuen Anwendung, im Beispielfall »meinevideos«, legt Trails ein entsprechendes Verzeichnis, alle nötigen Unterverzeichnisse und Bibliotheken an, einschließlich einer »build.xml« für die Erzeugung und das Deployment der neuen Webanwendung. Die angelegte Verzeichnisstruktur sieht folgendermaßen aus:

  • »Basisverzeichnis/meinevideos/« ist das
    Hauptverzeichnis der Webanwendung. Es kann als Startpunkt für
    den Import in eine IDE wie Eclipse dienen.
  • »Basisverzeichnis/meinevideos/src« ist das
    Quellcodeverzeichnis der Applikation. Hier werden die eigenen
    Klassen implementiert.
  • »Basisverzeichnis/meinevideos/context« ist das
    Verzeichnis der eigentlichen Webapplikation.
  • »Basisverzeichnis/meinevideos/context/WEB-INF«
    enthält die Konfigurationsdateien »web.xml«,
    »hibernate.properties« und so fort sowie alle
    Tapestry-Pages und HTML-Fragmente.
  • »Basisverzeichnis/meinevideos/lib« enthält
    alle Archive der einzelnen Frameworks (Hibernate, Tapestry, Apache
    Commons und so fort).

Zusätzlich ist noch der Ort der Tomcat-Installation in der Datei »build.properties« einzutragen.

Domänen-getriebene Entwicklung

Startpunkt jeder Trails-Webapplikation sind ein oder mehrere POJOs (Plain Old Java Objects), die den Domäne(n)-Objekten der Anwendung entsprechen. Mit diesem ersten wichtigen und entscheidenden Unterschied zu Ruby on Rails wird der Programmierer bereits vor dem ersten Schritt konfrontiert: Trails startet nicht mit einer Datenbanktabelle, sondern erwartet als Ausgangspunkt eine einfache Java-Klasse. Die Klasse in Listing 1, die im Beispiel Videos verwalten soll, lässt sich in einer modernen IDE wie Eclipse leicht erzeugen (Abbildung 3). Dazu deklariert man die Klassenattribute »id«, »title« und »year« und erzeugt mit dem Getters- und Setters-Generator die Zugriffsmethoden.

Um Hibernate mitzuteilen, welche Klasse es persistieren soll, muss der Entwickler Java-5-Annotationen im Sinne des neuen EJB-3.0/JSR-220-Standards ([7], [8]) benutzen. Die Annotation »@Entity« (Listing 1, Zeile 12) gibt dabei an, dass Hibernate die Klasse »Movie« in der Datenbank speichern soll. Dann fehlt noch eine eindeutige Identifikationsnummer, die durch die Annotation »@Id(generate=GeneratorType.AUTO)« über das »id«- Attribut erzeugt wird.

Um einzelne Filme in der Datenbank zu unterscheiden, bedarf es noch einer Methode »equals«, die sich jedoch trivial mit Hilfe eines »EqualsBuilder« aus dem Framework »apache.commons.lang.builder« implementieren lässt (Zeilen 10 und 44). Nach dem Aufruf des Ant-Targets »ant deploy« findet sich die Webanwendung prompt unter der Adresse »http://localhost:8080/meinevideos/« im Browser - vorausgesetzt der Tomcat-Pfad in »build.properties« stimmt.

Listing 1:
»Movie«-Version 1

01 package de.wartala.meinevideos;
02 
03 import java.util.HashSet;
04 import java.util.Set;
05 
06 import javax.persistence.Entity;
07 import javax.persistence.GeneratorType;
08 import javax.persistence.Id;
09 
10 import org.apache.commons.lang.builder.EqualsBuilder;
11 
12 @Entity
13 public class Movie {
14     private Integer id;
15     private String title;
16     private Integer year;
17 
18     @Id(generate=GeneratorType.AUTO)
19     public Integer getId() {
20         return this.id;
21     }
22 
23     public void setId(Integer id) {
24         this.id = id;
25     }
26 
27     public String getTitle() {
28         return title;
29     }
30 
31     public void setTitle(String title) {
32         this.title = title;
33     }
34 
35     public Integer getYear() {
36         return year;
37     }
38 
39     public void setYear(Integer year) {
40         this.year = year;
41     }
42 
43     public boolean equals(Object obj) {
44         return EqualsBuilder.reflectionEquals(this, obj);
45     }
46 
47     public String toString() {
48         return this.getTitle();
49     }
50 }


Abbildung 2: Der Aufruf von »ant create-project« erzeugt das Grundgerüst.


Abbildung 3: Trails-Webanwendungen lassen sich bequem in der Eclipse-IDE editieren.

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Tooltime Die besten zehn Eclipse-Plugins
Türöffner Service-orientierte Abbildung von Geschäftsprozessen mit freier Software
Von Java zu Ajax Google Web Toolkit zum Erstellen dynamischer Webapplikationen
Frisch aufgebrüht Netbeans 6.0 und Eclipse 3.3 im Vergleich
Mischmasch Mit JRuby on Rails die Vorteile von Java und Ruby nutzen
Reiches Angebot Webentwicklung mit Java
Whitepaper
Usage Landscape Enterprise Open Source Data Integration

Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.

Download PDF (Registrierung erforderlich)
Daten Migration - Eine Publikation von Bloor Research

Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.

Download PDF (Registrierung erforderlich)
Kommentare (0)