środa, 14 kwietnia 2010

Tutorial jak uruchomić projekt Seam (bazujący na JPA) w Websphere Application Server v 7

Moim głównym zadaniem było, uruchomienie projektu Seam, korzystającego z zewnętrznej bazy danych na WPS'ie, biorąc pod uwagę fakt, że WPS jest nakładką na WAS'a, oraz to że na początku nie mogłem uruchomić profilu WPS'owskiego, napisałem (łącznie z tym) 3 tutrialne potrzebne do uruchominia Seam'a na WAS'ie. Jednakże tutoriale te są w równym stopniu poprawne w przypadku uruchomienia Seam na WPS'ie, jedyna różnica jest taka, że konsola administratora WPS posiada trochę więcej opcji niż ta WAS'owska.

Co potrzebujemy?
1. Seam w wersji 2.1.2.GA: link  - jest to nowsza wersja Seam'a, w poprzednich tutorialach używałem wersji 2.0, jednakże różnice związane z tym tutorialem są tylko takie, że seam-gen zada o kilka pytań więcej, na które odpowiadamy domyślnymi odpowiedziami.
2. Projekt wygenerowany przez seam-gen, na podstawie bazy danych, patrz: link
3. Zapoznanie się oraz wykonanie wcześniejszego tutoriala dotyczącego brakujących bibliotek: link
4. Zapoznanie się oraz wykonanie wcześniejszego tutoriala dotyczącego utworzenia data source: link


Uruchomienie projektu Seam na WAS'ie:
1. Punktem wyjściowym jest projekt wygenerowany przez Seam-gen, najlepiej wcześniej sprawdzony na JBoss'ie. Projekt bazujący na JPA, czyli typu war.
2. Edytujemy plik resources/META-INF/persistence-dev.xml:
 - zmieniamy wartość między tagami < jta-data-source> i wpisujemy tam nazwę JNDI data source, którego wcześniej utworzyliśmy w moim przypadku jdbc/MySql_cms
< jta-data-source>jdbc/MySql_cms< /jta-data-source>
 - dodajemy / edytujemy właściwości hibernate, tak aby otwrzymać:
< properties>
         < property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
         < property name="hibernate.hbm2ddl.auto" value="update"/>
         < property name="hibernate.show_sql" value="true"/>
         < property name="hibernate.format_sql" value="true"/>
         < !-- Only relevant if Seam is loading the persistence unit (Java SE bootstrap) -->
         < property name="hibernate.transaction.manager_lookup_class"            value="org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"/>
< /properties>
- UWAGA!! W kodzie powyżej są spacje w tagach XML, należy je usunąć, jeśli chcemy wkleić do pliku.
3. Używając polecania "ant archive" w katalogu głównym projektu, kompilujemy projekt i tworzymy m.in. plik .war.
4. Uruchamiamy WAS'a /WPS'a i przechodzimy do konsoli administratora, wybieramy Application>App Types> Websphere E A, oraz wybieramy Install.







5. W następnym oknie wybieramy plik .war który utworzyliśmy (znajduje się on w katalogu dist naszego projektu). Klikamy next, w następnym oknie wybieramy Fast path i dajemy również next.
6. Kreator instalacji zostawiamy bez zmian, tylko w przedostatnim oknie dodajemy nazwę naszego projektu, klikany next, a następnie finish, na końcu zapisujemy zmiany na serwerze:







7. Wybieramy nasz projekt z listy zainstalowanych projektów, wybieramy "Manage modules", następnie klikamy na nazwę naszego projektu z zmieniamy ustawienia class loadera na: "Classes loaded with local class loader first (parent last)"
















8. Podobnie jak w punkcie 7. postępujemy po wyborze "Class loading and update detection".










9. Dodajemy przygotowane wcześniej Shared libraries do naszego projektu. Wybieramy "Shared library references", następnie zaznaczamy nazwę naszej aplikacji i klikamy na "Reference shared libraries", dodajemy "Jboss_libs" do okna po prawej i dajemy OK.









10. Zapisujemy wszystkie zmiany na serwerze. Zaznaczamy nasz projekt na liście i klikamy na start.








11. Projekt powinien się poprawnie uruchomić i jest dostępny pod adresem:
http://localhost:9080/websphere_war_test/index.html
Wymienione wcześniej 2 tutoriale, czyli http://aludwikowski.blogspot.com/2010/04/tutorial-jak-dodac-shared-libraries-do.html, http://aludwikowski.blogspot.com/2010/04/tutorial-jak-dodac-baze-danych-mysql-do.html, razem z tym, tworzą tak na prawdę jeden tutorial, pokazujący jak od początku do końca uruchomić projekt wygenerowany przez seam-gen (używający JPA) na Websphere Application Server.

1 komentarz:

  1. Brawo! A teraz do dzieła z procesami biznesowymi z UI dla zadań w Seamie. Nie mogę się doczekać rezultatów.

    OdpowiedzUsuń