Posts Tagged ‘Java’

Fast development with Spring, Roo & GWT

Author: Łukasz Zagórski (Łukasz Zagórski) | czerwiec 16th, 2010
Na tapecie narzędzie Spring Roo pozwalające generować kod dla projektów tworzonych z wykorzystaniem framework’a Spring. Wspomniany program zyskał ostatnio wsparcie dla technologii GWT, czego efektem jest poniższy tutorial. Zaprezentowane zostanie w jaki sposób bardzo niskim kosztem stworzyć z jego pomocą prostą aplikację. Zagadnienie podzieliłem na kilka postów. Temat pierwszego obejmuje podstawowe zagadnienia i zbliżony jest do tego co zaprezentował Ben Alex (ojciec Roo) na ostatnim Google IO, tu temat zostanie przedstawiony w sposób bardziej kompletny po to aby osoby z wiedzą==0 we wspomnianych technologiach mogły z powodzeniem zacząć. Celem tutoriala jest implementacja kompletnej aplikacji przy okazji zbytnio się nie męcząc. Dodatkowo w kolejnych częściach postaram się dodać analizę generowanego przez Roo kodu.


1. Najprostszym sposobem na rozpoczęcie pracy jest ściągnięcie i zainstalowanie STS (SpringSource Tool Suite) spod adresu: http://www.springsource.com/products/springsource-tool-suite-download .
Jest to zintegrowane środowisko programistyczne, które de-facto jest podrasowanym Eclipse’m springowymi pluginami. Zainstalowanie go ułatwi start w projekcie ponieważ domyślnie zawiera większą część potrzebnych rozszerzeń. W dystrybucji zainstalowany jest plugin ułatwiający pracę z Roo o nazwie “Roo shell”, trzeba włączyć jego widok lub wywołać za pomocą skrótu Ctrl + r. We wspomnianej konsoli należy do bólu stosować polecenie “hint” i skrót Ctrl + Space.


2. Następnie instalujemy dowolną bazę danych (w przykładzie wykorzystano MYSQL) i utworzyć w niej bazę “informations”.


3. Kolejno można już uruchomić środowisko programistyczne i ściągnąć potrzebne rozszerzenia. Na początku wystarczy Google Plugin for Eclipse.




4.
Następnie należy przystąpić do utworzenia projektu Roo. Najprościej za pomocą menu “File” (jak przedstawiono poniżej).



Należy wpisać nazwę projektu i określić główną paczkę.



Po wypełnieniu formularza “klikniąć” Next, Finish i można obserwować poruszenie u dołu ekranu w konsoli Roo.


5.
Po założeniu projektu trzeba skonfigurować warstwę utrwalania.
Aby to zrobić wykorzystany zostanie wspomniany Roo Shell, a aby to osiągnąć wystarczy wpisać polecenie jak poniżej.
Po jego wykonaniu skonfigurowana zostanie warstwa utrwalania dla bazy MYSQL z implementacją Hibernate do bazy o nazwie “informations”.
Dodatkowe opcje konfiguracji (takie jak użytkownik i hasło do bazy) można ustawić w pliku database.properties.



6. Kolejno tworzymy pierwszą encję za pomocą komendy jak poniżej.



7. Mając stworzona encję dodajemy do niej pola.



8. Po dodaniu odpowiednich pól do encji można “podpiąć” GWT poprzez wpisanie w konsoli Roo “gwt setup”.
Komenda ta spowoduje wygenerowanie kodu warstwy prezentacji.


9. Następnie należy skonfigurować GWT “klikając” prawym przyciskiem na projekcie i wybierając opcję jak poniżej.



Należy upewnić się, że wybrane jest SDK GWT 2.1.0.M1 .



10. Popełniwszy powyższe punkty należy włączyć Maven Dependency Management,



“odświeżyć” projekt, uruchomić,



wybrać katalog z buildem,



i VOILA! .


W rezultacie otrzymujemy aplikację (screen wygenerowanej warstwy prezentacji poniżej) która umożliwia dodawanie rekordów do bazy, przeglądanie ich na stronicowanej liście, edycję i usuwanie.


Proces tworzenia zajmuje około 5 min (mając już skonfigurowane środowisko).
Dodatkowo w pliku logu zapisywane są wszystkie wykonywane w konsoli Roo instrukcje co pozwala odtworzyć cały proces .


Invalid memory access of location używając GWT

Author: Mateusz Kubiczek (madmatt) | listopad 24th, 2009

Po zaktualizowaniu Safari do wersji 4.0.4 w systemie Mac OS możemy natrafić na bardzo nieprzyjemny błąd uruchamiając Hosted Mode GWT z Eclipse:

Invalid memory access of location 00000010 eip=901a277b

Odrobina googlowania podsunęła rozwiązanie: http://code.google.com/p/google-web-toolkit/issues/detail?id=4220#c22

  1. Należy ściągnąć aktualny build WebKit pod MacOS stąd: http://nightly.webkit.org/
  2. Otworzyć dwuklikająć plik .dmg, przeciągnąć WebKit do /Applications/
  3. W Eclipse wybrać Run -> Run Configurations z menu.
  4. Po lewej stronie wybrać naszą aplikację (pod Web Applications)
  5. Wybrać zakłądkę “Environment”
  6. Dodać zmienną:
    Name: DYLD_FRAMEWORK_PATH
    Value: /Applications/WebKit.app/Contents/Frameworks/10.5
  7. Zapisać

Problem powinien być rozwiązany.