Nadszedł czas na napisanie kolejnej notki, co prawda, to co będę tu opisywał udało mi się wykonać z powodzeniem już jakiś czas temu(ostatni krok, czyli wdrożenie war'a na
WPS z
DB2 jakoś w poniedziałek), ale coś ostatnio nie mogłem zebrać myśli i podsumować zakończone zadanie na moim blogu.
Zabieramy się do roboty, w tym miejscu Drogi Czytelniku zakładam, że masz zainstalowany serwer
WPS i stworzony odpowiedni profil(jeżeli nie odsyłam do poprzedniego wpisu
LINK). Na początek potrzebujemy zainstalować
JDK i
Grails, żeby stworzyć war'a, którego potem będziemy wdrażać na
WPS.
Instalacja JDK, Grails i wyeksportowanie war'a
Pobieramy JDK na Linuxa - LINK.
Pobieramy najnowszą(v 1.1.2) dostępną pod
Linux'a wersję
Grails -
LINK.
Instalujemy
JDK, myślę, że będzie lepiej jak nie będę tutaj opisywał krok po kroku co należy robić, znalazłem świetny materiał znajdujący się na
Polskim Forum Linuksa -
LINK, który wyczerpuje ten temat. Wystarczy znaleźć interesujący nas podpunkt(ja wybrałem instalację
JDK ze źródeł z prawami administratora) i robić kolejno co jest tam napisane. Zwracamy szczególną uwagę przy dodawaniu zmiennych środowiskowych, ponieważ później przyda nam się ta wiedza przy dodawaniu zmiennych
Grails'a.
Instalując
Grails'a nie używamy komendy
chmod a+x, ponieważ tak jak w przypadku
WPS chcemy, aby uprawnienia do wykonywania operacji na nim przypadły użytkownikowi. Dlatego też, rozpakowujemy nasze pliki w katalogu domowym wcześniej stworzonego użytkownika(u mnie
/home/rafal). Po dodaniu zmiennych środowiskowych tym razem wskazujących na katalog z
Grails'em możemy zrestartować system żeby zmiany były widoczne.
Dalej przygotujemy sobie plik war, pozostawiam tu Wam pewną dowolność, ponieważ sama aplikacja nie jest tutaj istotna, może to być najprostszy kod typu
HelloWorld, co nam teraz jest potrzebne, to wyeksportować plik war komendą:
$ grails war NaszaAplikacja.war
Wygenerowana w konsoli odpowiedź naprowadzi nas na folder, w którym znajduje się stworzony plik. Jeżeli ktoś chce użyć przykładu stworzonego przeze mnie odsyłam do wcześniejszej notki -
LINK(był on pisany na
Windows'ie, ale na
Linux'ie wszystko robimy analogicznie).
Instalacja DB2
Pobieramy
DB2 -
LINK, rozpakowujemy w dowolnym miejscu w katalogu domowym użytkownika(instalacja
DB2 jako non-root i tak domyślnie wrzuci nam pliki do
/home/nazwaUzytkownika/sqllib). Po zainstalowaniu otwieramy okno
First Steps w celu stworzenia
SAMPLE database. Wybieramy lokacje bazy danych, przeglądając później ten katalog widzimy, że stworzyliśmy węzeł(ang.
node) o domyślnym indeksie 0000 oraz z ID użytkownika, dla którego instalowaliśmy
DB2.
Otwieramy
Applications>IBM DB2>Command Line Processor, uruchamiamy usługę DB2 komendą:
db2 => db2start
Tworzymy bazę danych, jeżeli stworzyliśmy aplikację Biblioteka, to tak jak podane jest w wcześniejszym wpisie tworzymy bazę danych i łączymy się z nią.
Tworzenie połączenia JDBC i wdrożenie war'a na WPS
Uruchamiamy serwer
WPS, klikamy i rozwijamy pierwszą opcję czyli
Guided Activities>Connecting to a database, tam mamy kolejno opcje do konfiguracji połączenia z bazą danych, na ten moment możemy ominąć pierwszy krok czyli
Configure credentials for secure database access. Przechodzimy zatem do
Configure a JDBC provider => Click to perform. Po prawej w oknie gdzie figurują dostępni dostawcy JDBC klikamy
New.
Wybieramy kolejno:
Step 1: Create a new JDBC Provider:
*Database type: DB2
*Provider type: DB2 Using IBM JCC Driver
*Implementation type: Connection pool data source
Step 2: Enter database class path information
${DB2_JCC_DRIVER_PATH}
/home/nazwaUzytkownika/sqllib/java
Pole
Native library path(wiąże się to ze zmiennymi dla WebSphere'a, patrz niżej) możemy zostawić puste i korzystamy z tego przywileju. Pomijamy także następny krok czyli
Configure WebSphere variables, ponieważ żadna taka zmienna nie jest nam potrzebna do połączenia z bazą. Klikamy
Next i dalej na podsumowaniu
Finish.
Teraz konfiguracja Datasource, wybieramy wcześniej utworzonego dostawcę JDBC i po prawej w rubryce
Additional Properties klikamy
Datasources.
Podajemy JNDI name, dalej wybieramy
Driver type - 2 i wpisujemy nazwę wcześniej utworzonej bazy danych, pole
Server name zostawiamy puste. Na tym konczymy naszą konfigurację połączenia.
Testujemy nasze połączenie, pamiętając, że jeszcze musimy zapisać nasze zmiany, wyświetli się odpowiedni komunikat, klikamy
Save.
Nawiązanie połączenia po wykonaniu powyższych czynności powinno zakończyć się powodzeniem.
Zmieniamy plik
DataSource.groovy aby wygladal tak(w miejsce biblio możesz umieścić swoją nazwę):
Wdrażamy war’a na
WPS, w konsoli administratora przechodzimy do
Application>New Application>New Enterprise Application.
Wyszukujemy nasz wcześniej stworzony plik, klikamy
next, wybieramy metodę instalacji -
Fast Path. :)
Dalej wszystkie ustawienia do kroku 4 zostawiamy domyślne, jedynie zmieniamy mapowanie
context root, jeżeli tego nie zrobimy prawdopodobnie otrzymamy taki błąd:
com.ibm.ws.wswebcontainer.VirtualHost addWebApplication SRVE0164E: Web Application HumanTasks_war#/HumanTasks-production-0.1 uses the context root /*, which is already in use by Web Application DefaultApplication#Default Web Application. Web Application /HumanTasks-production-0.1 will not be loaded.
Teraz przechodzimy do
Applications>Applications Types>WebSphere enterprise applications, zaznaczamy naszą aplikacje naciskamy
start.
Następnie w zależności od podanego context root'a dla naszej aplikacji i adresu waszego hosta(u mnie
defoult_host na porcie 9080) wpisujemy adres naszej aplikacji:
http://localhost:9080/grails
I możemy cieszyć się rezultatem naszej pracy.