Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Google Web Toolkit mit PHP Backend

Möchte man das Google Web Toolkit mit einem PHP Backend ver­knüp­fen ist das grund­sätz­lich rela­tiv ein­fach. Das Toolkit bie­tet ver­schie­dene Möglichkeiten um Daten mit Backends aus­zu­tau­schen (wie z.B. JSON oder XML). Setzt man die­sen Gedanken aller­dings in die Tat um, stößt man schnell auf einige Fallstricke die bei der Entwicklung hin­der­lich sein können.

Die Entwicklung von GWT Anwendungen erfolgt im Hosted Mode. Dieser Mode star­tet einen Jetty-Webserver der die Html- und Javascript Dateien hos­ted und auch einen Servlet Container für ser­ver­sei­tige Servlets anbie­tet. Bei der PHP-Entwicklung nutzt man typi­scher­weise einen Apache-Webserver mit mod_php. Diese bei­den Webserver lau­fen auf unter­schied­li­chen Ports wodurch Aufrufe von der GWT Anwendung zum PHP-Backend durch die Single Origin Policy unter­bun­den wer­den. Diese Policy besagt, dass ein XmlHttpRequest nur auf die glei­che Domain (Host+Port) zugrei­fen darf. Um GWT mit PHP zu ver­bin­den muss also eine andere Lösung gefun­den wer­den. Wie dies gesche­hen kann, wird im fol­gen­den Artikel beschrieben.

Zunächst erzeugt man sich wie gewöhn­lich ein GWT Projekt. Die Apache-Konfiguration wird nun um einen Alias erwei­tert, der direkt auf das Webapp Verzeichnis im Target Ordner weist. (z.B. /gwt-project). Anschließend kann auf das GWT-Frontend über http://localhost/gwt-project zuge­grif­fen werden.

Als nächs­tes muss die Konfiguration für den Hosted-Mode ange­passt wer­den. Dazu wird zunächst der Jetty-Webserver über den Parameter "-noServer" abge­schal­ten und der Apache Webserver über den Parameter "-port 80" dem Hosted-Mode bekannt gemacht. Des Weiteren muss der Wert für den runTarget Parameter ent­spre­chend dem neuen Alias ange­passt wer­den (http://localhost/gwt-project/GwtPhpBackendApp.html).

Die Entwicklung des PHP Codes erfolgt meis­tens in einem ande­ren Projekt als das GWT Frontend. Um Requests aus der GWT Anwendung zum PHP Backend zu ermög­li­chen ist ein wei­te­rer Alias auf das PHP Verzeichnis in der Apache-Konfiguration hilf­reich. (z.B. /gwt-project/backend). Somit kann auf das Backend über http://localhost/gwt-project/backend) zuge­grif­fen werden.

Aus der GWT-Anwendung her­aus kön­nen somit die Requests an die Adresse GWT.getHostPageBaseURL()+"/backend" gesen­det wer­den um das PHP-Backend zu errei­chen. Für die spä­tere Produktivumgebung müs­sen die PHP-Skripte nur noch in dem ent­spre­chen­den Pfad abge­legt werden.

Hier noch die abschlie­ßende Apache-Konfiguration für das Beispiel.

30. September 2012
|||

Related Posts

Pin It on Pinterest