GAE + Groovy = Gaelyk

Aby wykorzystać Grooviego do pisania aplikacji na GAE polecam framework Gaelyk. Jest on specjalnie przeznaczony na  tą platformę, i pozwala stosować różne usługi w sposób łatwy i szybki.

Tworzymy czysty projekt korzystając z archetypu “appengine-skeleton-archetype”. Za “your-app-id” podstawiamy identyfikator naszej aplikacji założonej w konsoli GAE.

Do pliku pom.xml dodajemy zależność:

Do pliku web.xml dodajemy definicje dla Gaelyka:

Aby przetestować czy to nam działa dodajemy plik index.gtpl (z treścią typu “Hello World”) do katalogu src/main/webapp/ i odpalamy serwer testowy:

Maven ściągnie wszystkie zależności, oraz odpali serwer deweloperski na porcie 8080, więc możemy sprawdzić czy dostaniemy naszą aplikacje pod adresem:

http://127.0.0.1:8080/

Następnie spróbujemy przetestować to na serwerze Google. Do uploadu aplikacji możemy też wykorzystać mavena:

W trakcie uploadu będzie trzeba się autoryzować – system otworzy okno przeglądarki w którym należy zalogować się na konto google. Zostanie wygenerowany kod autoryzacyjny, który następnie wklejamy w terminalu.

Aby przetestować, jak to działa na serwerze wpisujemy do przeglądarki adres:

http://your-id-app.appspot.com

Aby dodać jakiś kontroler, musimy dodać kompilator groovego do pom.xml. Jedną z możliwości jest dodanie w sekcji build->plugins :

oraz w zależnościach:

Następnie definiujemy routing w nowo utworzonym pliku webapp/WEB-INF/routes.groovy

Definiuje to nam URL /prime z jednym opcjonalnym parametrem, przekierowany do  groovletu “prime”.

W katalogu webapp/WEB-INF/groovy dodajemy ten kontroler (plik prime.groovy):

Powyższy  kontroler powinien policzyć w sposób bardzo trywialny rozkład liczby przekazanej jako parametr na liczby pierwsze oraz przekazać sterowanie do widoku “prime.gtpl”. Ten widok utworzymy w  webapp/WEB-INF/pages/prime.gtpl :

Po :

Możemy przetestować działanie tej akcji pod adresem:

http://127.0.0.1/prime/123

Powinno nam to rozłożyć liczbę 123 na liczby pierwsze 3 i 41.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">