« Frohes Neues Jahr | Main | Down under »

Samstag, Januar 02, 2010

GWT und eOPAC

Ich spiele zum ersten Mal mit dem Google Webtool Kit GWT herum. Gut für den Überblick ist diese Anleitung zur Installation mit Eclipse.

Die neue Version 2.0 macht das Entwickeln von dynamischen, AJAX-basisierten Browser-GUIs für Java-Entwickler sehr einfach und komfortabel: Es gibt ein Eclipse-Plugin, das eigentlich gleich 3 Aufgaben erfüllt: Integrierter Webcontainer (AppEngine), Editor mit Erweiterungen zur Einbindung von JavaScript-Code und einem Compiler für eine fertige Webseite zur Standalone-Anwendung. Mit einer simplen Launch Configuration und dem Browser-Plugin kann man wie gewohnt in der IDE mit Syntaxhilfe, Debugging und Edit-Save-Reload schnell Code aufführen, Änderungen testen und Fehler finden - sehr schön!

Das Browser-Plugin installiert sich nach erstem Start:http://localhost:8888/Eopac.html?gwt.codesvr=192.168.1.55:9997

Ich arbeite für Layout und Events schrittweise das Tutorial durch: und nach kurzer Zeit hab ich eine Tabelle erstellt, in die bei erfolgreicher Validierung der ISBN-Nummer dynamisch eine Zeile erzeugt wird oder gelöscht werden kann.

Alles, ohne eine einzige Zeile JavaScript zu schreiben, aber mit Standard-Java-Eventhandling wie ButtonListener, MouseEvent oder KeyPressedEvents. Nach Kompilierung läuft die statische HTML-Seite dann als eingebundenes JavaScript komplett im Browser.

Als Übungsaufgabe habe ich mir eine Bestandsabfrage aller Bücher auf einer Merkliste bei den Bücherhallen gestellt. Diese setzt das "Zones"-System der Firma BiblioMondo ein. Mal abgesehen davon, dass eher traditionelles HTML und vor allem Tonnen von JavaScript (vorsichtig ausgedrückt) eingesetzt werden, ist das Hauptproblem die fehlende offene API. Es gibt keine RSS-Schnittstelle, keine direkt verlinkbaren URLs und eine ziemlich unergonomische Oberfläche: Ich brauche 3 Klicks von der Titelanzeige zur Anzeige des Bestands, nur um dann zu sehen, dass das Buch entliehen ist. Dann kann ich zurück klicken und in einer anderen Zweigstelle nachschauen - bäh, das muss auch anders gehen!

Daher wird es leider kompliziert, out-of-the-box mit dem GWT zu arbeiten: Hier wird (zu Recht) von einer verfügbaren API ausgegangen, die entweder JSON oder XML oder anders strukturierten Text zurück gibt. Dann lässt sich auch das Problem der Same-Origin-Policy (SOP) umgehen:

Making cross-site requests
In this session, you'll make a call to a remote server instead. To do so you will have to work around SOP (Same Origin Policy) constraints.
..Create a source of JSON data on a remote server.

Das ist bisher das Ende für GWT und meine Übungsaufgabe, leider.

Ohne die API muss ich mich auf den steinigen Weg des HTML-Scrapers begeben, der aus der HTML-Antwort des Servers die richtigen Elemente raussucht und weiter benutzt.

Erstellt von tixus um 1:07 AM Kategorien: Software + Java
Powered by
Thingamablog 1.1b6