GAE/J - Hello World (1)

sobota, 11 kwietnia 2009

Oto mały opis moich eksperymentów z Google App Engine for Java

Część pierwsza, Część druga

Instalacja

Aby zacząć pisać program, korzystając z GAE/J potrzebnych jest kilka rzeczy:

Java SDK
To najbardziej oczywisty składnik,
jeśli po napisaniu polecenia javac -version w odpowiedzi otrzymamy np: javac 1.6.0_11, to znaczy że możemy przejść do następnego punktu.
Jeśli nie, no cóż.. java.sun.com
Apache Ant
Mrówka i pliki build.xml są dla języka Java tym czym dla języka C jest make i Makefile - narzędziem pozwalającym programiście operować logiką Zrób to co mam na myśli. Można oczywiście obyć się bez tego pakietu, ale jako że bardzo ułatwia życie, polecam jego instalację. Dodam jeszcze że wszystkie przykłady są wydane wraz z plikami build.xml.
Instalację weryfikujemy pisząc ant -version, w odpowiedzi powinniśmy dostać coś takiego: Apache Ant version 1.7.1 compiled on June 27 2008
Jeśli nie jesteśmy szczęśliwym posiadaczem tego pakietu to zapraszam na stronę ant.apache.org
Eclipse
Opcja dla leniwych. ;)
Osobiście pominąłem ten punkt i nie będę go opisywał.
Użytkownicy tego IDE, będą podążali własnymi ścieżkami i nie spodziewam się by mieli pożytek z tego co tu piszę. Będą też potrzebowali armii odpowiednich pluginów..
Google App Engine SDK
Wszystko co potrzebne jest dostępne na code.google.com
Wystarczy pobrać odpowiedni zip, rozpakować i można zacząć zabawę.
W katalogu demos można znaleść przykładowe projekty.
Konto Google z aktywowanym GAE/J
Obsługa języka Java, jest w fazie testów i wymaga otrzymania zaproszenia. W celu aktywacji usługi konieczna jest wizyta na stronie appengine.google.com, tam też zakładamy nasz projekt.
Dane konta i id projektu będą potrzebne do publikacji kodu.
Środowisko

GAE/J różni się od swojego krewniaka obsługującego język Python, w większości przypadków będziemy mieli do czynienia z Java feel and look. Żegnamy się więc z czytelnymi plikami yaml i wracamy do xml. Również struktura SDK jest nieco bardziej złożona i lepiej przystosowana do większych projektów.

Eksperymenty polecam robić na szablonie projektu, skopiowanym z katalogu demos/new_project_template.

Wszystkie przykłady w katalogu demos są skonfigurowane tak aby można było je uruchomić bezpośrednio w tym katalogu. Umieszczając projekt w innym miejscu, należy zmodyfikować build.xml i podać lokalizację SDK. W tym celu szukamy na początku pliku definicji <property name="appengine.sdk" location="../.." /> i modyfikujemy atrybut location tak by wskazywał na SDK

To wszystko co trzeba zmienić by otrzymać działający przykład. Pomimo że konfiguracja jest zapisana w xml, plik jest dużo bardziej czytelny niż typowe generowane automatycznie Makefile. Zachęcam do późniejszego przejrzenia go w całości.

Środowisko testowe można uruchomić w klasyczny, znany z poprzednich edycji GAE sposób, ale wygodniej jest wpisać ant dev_appserver. Przy okazji mamy gwarancję że nowo uruchamiana aplikacja zostanie w razie potrzeby skompilowana. (Serwer należy restartować po każdej modyfikacji kodu).

Teraz, przyszła pora na ustawienie środowiska aby możliwa była instalacja na serwerach Google.
W katalogu src/WEB-INF znajdują się dwa pliki:

Instalacja rozpoczyna się po wpisaniu ant update. Jeśli wszystko się powiedzie aplikacja powinna być dostępna na id.appspot.com (na przykład szsz.appspot.com)

Podsumowanie
html
zawiera statyczne pliki projektu, takie jak index.html
src
Kody źródłowe java, oraz pliki konfiguracyjne
www
Tu znajduje się skompilowany i gotowy do opublikowania kod aplikacji
Wszędzie poza szablonem katalog ten nazywa się war (dokumentacja, przykłady). można to łatwo poprawić edytując plik build.xml, nie wem skąd wziął się ten brak konsekfencji.

Najważniejsze pliki

build.xml
Odpowiednik Makefile. Zawiera opis wszystkich reguł potrzebnych do zarządzania projektem. Najważniejsze z nich można wywołać następującymi poleceniami:
ant
Kompiluje program, tworząc katalog www (war)
ant dev_appserver
Uruchamia testowy serwer
ant update
Aktualizuje aplikację na serwerach Google
ant request_logs
Pobiera logi w formacie Apache (domyślnie z dwóch dni)
ant clean
Kasuje katalog www (war)
Dokumentacja pliku build.xml.
src/WEB-INF/web.xml
Konfiguracja servletów i przypisanie ich do scieżek.
Struktura pliku jest na tyle czytelna że nie wymaga dodatkowego opisu.
src/WEB-INF/appengine-web.xml
Konfiguracja Appengine. Dokładniejszy opis poniżej
Dokumentacja pliku appengine-web.xml
Co dalej

Mając działające środowisko, można zacząć eksperymenty z kodem, ale to już opiszę w następnej części. Zapewne już po świętach.

Etykiety: , ,

Red 12:22

Komentarze

Prześlij komentarz

Archiwum

Subskrybuj

RSS / Atom