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.