Enterprise Java Beans Część J2EE (Java 2 Enterprise Edition) Składowa wzorca projektowego Model View Controller Dostęp do danych w modelu klient-serwer Ułatwienie dostępu do bazy danych – mapowanie bazy relacyjnej na obiekty języka Java Skalowalność – tworzenie rozproszonych systemów Zapewnienie transakcyjności Rozwiązanie dla systemów biznesowych Możliwość pracy z systemami webowymi oraz aplikacjami okienkowymi EJB 3.0 - wymagania Serwer aplikacji – WebLogic – JBoss – … i wiele innych Baza danych – Dowolna, obsługująca interfejs JDBC Maszyna Wirtualna Javy (dla EJB 3.0 – Java 5.0) Instalacja serwera aplikacji JBoss Darmowy serwer aplikacji J2EE Należy go tylko rozpakować w /tmp Uruchomienie serwera: – bin/run.sh Serwer podczas pracy sprawdza, czy pojawiły się nowe aplikacje (w katalogu server/default/deploy) i jeśli tak, instaluje je i uruchamia Uruchomienie przykładu Przykład – aplikacja przechowująca dane osób – obecnie tylko imię Przykład do pobrania z adresu: – – – – http://artemis.wszib.edu.pl/~kbalos/ejb3/jboss-4.0.2.zip http://artemis.wszib.edu.pl/~kbalos/ejb3/ejb3lab_src.tgz http://artemis.wszib.edu.pl/~kbalos/ejb3/apache-ant-1.6.5-bin.tar.bz2 http://artemis.wszib.edu.pl/~kbalos/ejb3/jdk-1_5_0_06-linux-i586.bin Kompilacja przy użyciu programu Ant – ant ejb3 - stworzenie aplikacji EJB – ant webwar - stworzenie aplikacji www z dostępem do aplikacji EJB Skopiowanie pliku dist/human.ejb3 do katalogu server/default/deploy JBossa Skopiowanie pliku dist/human.war do katalogu server/default/deploy JBossa (Jboss zawiera wbudowany serwer Tomcat) Uruchomienie klienta z linii poleceń ./client.sh "Jan Kowalski" – Dodanie osoby do bazy danych i wypisanie listy osób – Kod klienta w pliku jsrc/client/Client.java Uruchomienie podglądu WWW Aplikacja human.war – dostęp do aplikacji EJB z wykorzystaniem JFaces oraz Oracle ADF Strona: http://localhost:8080/human/faces/humans.jsp Przykład Human – składowe jsrc/entity/Human.java - Entity Bean – bean służący do przechowywania danych w bazie danych. Składa się z opisu pól, nazwy tabeli w której jest przechowywany w bazie. Pola są opisane za pomocą operacji setXXX() i getXXX() (jak w JavaBeans). jsrc/session/HumanSessionBean.java – Session Bean, odpowiadający za komunikację między klientem a serwerem – pobiera dane z bazy i umieszcza je w niej jsrc/interfaces/HumanSession.java – interfejs do session beana – wykorzystywany przez klienta Zalety korzystania z EJB Warstwowy model aplikacji Niezależny development warstwy persystencji, logiki biznesowej, dostępu do danych i prezentacji Klient uzyskuje dostęp do danych wyłącznie poprzez interfejs – implementacja SessionBeana może się zmieniać (poprawione błędy, etc.) Zadanie Session Bean HumanSession zawiera kilka metod do obsługi osoby – należy wykorzystać je w kliencie (Client.java) Modyfikacja/dodanie pól (nazwisko, wiek) do Entity Beana (Human.java) i wykorzystanie ich w kliencie (klient z linii poleceń lub www)