O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Enterprise JavaBeans 3.0. Wydanie V

Book Description

Dzięki książce Enterprise JavaBeans 3.0. Wydanie V poznasz najnowsze wcielenie technologii EJB. Opisano tu wszystkie rozwiązania, które umożliwiły uproszczenie standardu Enterprise JavaBeans 3.0 względem jego poprzednich wersji.

Table of Contents

  1. Enterprise JavaBeans 3.0
  2. Dedykacja
  3. Słowo wstępne
  4. Przedmowa
    1. Nota autora
    2. Kto powinien przeczytać tę książkę?
    3. Jak zorganizowano tę książkę?
      1. Część I. Standard EJB 3.0
      2. Część II. Podręcznik użytkownika serwera JBoss
    4. Oprogramowanie i wersje
    5. Konwencje stosowane w tej książce
    6. Kod źródłowy
    7. Podziękowania
  5. I. Standard EJB 3.0
    1. 1. Wprowadzenie
      1. Komponenty serwerowe
        1. Architektura Enterprise JavaBeans w definicjach
      2. Utrwalanie danych i komponenty encyjne
      3. Asynchroniczne przesyłanie komunikatów
        1. Java Message Service
        2. Komponenty sterowane komunikatami i architektura JCA 1.5
      4. Usługi Web Services
      5. Titan Cruises — wymyślone przedsiębiorstwo
      6. Co dalej?
    2. 2. Przegląd architektury
      1. Komponent encyjny
        1. Klasa komponentu encyjnego
        2. Deskryptory wdrożenia w formacie XML i pliki JAR
      2. Komponent biznesowy (korporacyjny)
        1. Klasy i interfejsy
          1. Konwencje nazewnicze
          2. Interfejs zdalny
          3. Klasa komponentu
          4. Jeszcze słowo o komponentach sterowanych komunikatami
        2. Adnotacje, deskryptory wdrożenia i pliki JAR
        3. Kontener EJB
          1. Namiastka pośrednika, kontener EJB i egzemplarz komponentu
      3. Stosowanie komponentów EJB i komponentów encyjnych
        1. Modelowanie przepływu zadań za pomocą komponentów sesyjnych
          1. Stanowe i bezstanowe komponenty sesyjne
        2. Komponenty sterowane komunikatami
      4. Kontrakt komponent-kontener
      5. Podsumowanie
    3. 3. Zarządzanie zasobami i usługi podstawowe
      1. Zarządzanie zasobami
        1. Zarządzanie pulą egzemplarzy
          1. Cykl życia bezstanowego komponentu sesyjnego
          2. Komponenty sterowane komunikatami i pula egzemplarzy
        2. Mechanizm aktywacji
        3. Architektura Java EE Connector Architecture
          1. Konektory JCA 1.5
      2. Usługi podstawowe
        1. Współbieżność
          1. Współbieżność w pracy komponentów sesyjnych i encyjnych
          2. Współbieżność w pracy komponentów sterowanych komunikatami
        2. Transakcje
        3. Trwałość
          1. Java Persistence
          2. Utrwalanie obiektowo-relacyjne
        4. Obiekty rozproszone
        5. Asynchroniczne przesyłanie komunikatów
        6. Usługa licznika czasowego EJB
        7. Nazewnictwo
        8. Bezpieczeństwo
        9. Usługi podstawowe i współdziałanie
          1. IIOP
          2. SOAP i WSDL
      3. Co dalej?
    4. 4. Konstruowanie pierwszych komponentów
      1. Wytwarzanie komponentu encyjnego
        1. Klasa komponentu Cabin
        2. Plik persistence.xml
      2. Wytwarzanie komponentu sesyjnego
        1. Interfejs zdalny TravelAgentRemote
        2. Klasa komponentu TravelAgentBean
        3. Plik titan.jar
        4. Tworzenie tabeli CABIN w relacyjnej bazie danych
        5. Wdrażanie pliku EJB JAR
        6. Tworzenie aplikacji klienckiej
          1. Tworzenie nowej encji Cabin
    5. 5. Utrwalanie: usługa EntityManager
      1. Encje są obiektami POJO
      2. Encje zarządzane kontra encje niezarządzane
        1. Kontekst utrwalania
          1. Kontekst utrwalania o zasięgu transakcyjnym
          2. Rozszerzony kontekst utrwalania
          3. Encje odłączone
      3. Pakowanie jednostek utrwalania
        1. Zbiór klas jednostki utrwalania
      4. Uzyskiwanie dostępu do usługi EntityManager
        1. Interfejs EntityManagerFactory
          1. Uzyskiwanie egzemplarza interfejsu EntityManagerFactory w środowisku Javy SE
          2. Uzyskiwanie egzemplarza interfejsu EntityManagerFactory w środowisku Javy EE
        2. Uzyskiwanie kontekstu utrwalania
      5. Techniki współpracy z usługą EntityManager
        1. Utrwalanie encji
        2. Odnajdywanie encji
          1. Metody find() i getReference()
          2. Zapytania
        3. Aktualizowanie encji
        4. Scalanie encji
        5. Usuwanie encji
        6. Metoda refresh()
        7. Metody contains() i clear()
        8. Metoda flush() i typ wyliczeniowy FlushModeType
        9. Blokowanie dostępu do encji
        10. Metoda getDelegate()
      6. Transakcje zasobów lokalnych
    6. 6. Odwzorowywanie obiektów trwałych
      1. Model programowania
        1. Komponent Customer
        2. Klasa komponentu
        3. Plik odwzorowania w formacie XML
      2. Podstawy odwzorowań relacyjnych
        1. Odwzorowywanie podstawowego schematu
          1. Adnotacja @Table
          2. Adnotacja @Column
          3. XML
      3. Klucze główne
        1. Adnotacja @Id
        2. Generatory tabel
        3. Generatory sekwencji
        4. Klasy kluczy głównych i klucze złożone
          1. Adnotacja @IdClass
          2. Adnotacja @EmbeddedId
      4. Odwzorowywanie właściwości
        1. Adnotacja @Transient
        2. Adnotacja @Basic i typ wyliczeniowy FetchType
        3. Adnotacja @Temporal
        4. Adnotacja @Lob
        5. Adnotacja @Enumerated
      5. Odwzorowania w wielu tabelach i adnotacja @SecondaryTable
      6. Obiekty osadzone (oznaczone adnotacją @Embedded)
    7. 7. Relacje łączące komponenty encyjne
      1. Siedem rodzajów relacji
        1. Jednokierunkowa relacja jeden-do-jednego
          1. Schemat relacyjnej bazy danych
          2. Model programowy
          3. Złączanie według kolumn klucza głównego
          4. Odwzorowywanie jednokierunkowej relacji jeden-do-jednego za pomocą elementów XML-a
          5. Domyślne odwzorowywanie relacji
        2. Dwukierunkowa relacja jeden-do-jednego
          1. Schemat relacyjnej bazy danych
          2. Odwzorowywanie dwukierunkowej relacji jeden-do-jednego za pomocą elementów XML-a
          3. Domyślne odwzorowywanie relacji
        3. Jednokierunkowa relacja jeden-do-wielu
          1. Schemat relacyjnej bazy danych
          2. Model programowy
          3. Odwzorowywanie jednokierunkowej relacji jeden-do-wielu za pomocą elementów XML-a
          4. Odwzorowanie z wykorzystaniem specjalnej tabeli złączenia
          5. Odwzorowywanie jednokierunkowej relacji jeden-do-wielu (w wersji wykorzystującej tabelę złączenia) za pomocą elementów XML-a
          6. Domyślne odwzorowywanie relacji
        4. Encje Cruise, Ship i Reservation
        5. Jednokierunkowa relacja wiele-do-jednego
          1. Schemat relacyjnej bazy danych
          2. Model programowy
          3. Odwzorowywanie jednokierunkowej relacji wiele-do-jednego za pomocą elementów XML-a
          4. Domyślne odwzorowywanie relacji
        6. Dwukierunkowa relacja jeden-do-wielu
          1. Schemat relacyjnej bazy danych
          2. Model programowy
          3. Odwzorowywanie dwukierunkowej relacji jeden-do-wielu za pomocą elementów XML-a
          4. Domyślne odwzorowywanie relacji
        7. Dwukierunkowa relacja wiele-do-wielu
          1. Schemat relacyjnej bazy danych
          2. Model programowy
          3. Odwzorowywanie dwukierunkowej relacji wiele-do-wielu za pomocą elementów XML-a
          4. Domyślne odwzorowywanie relacji
        8. Jednokierunkowa relacja wiele-do-wielu
          1. Schemat relacyjnej bazy danych
          2. Model programowy
          3. Odwzorowywanie jednokierunkowej relacji wiele-do-wielu za pomocą elementów XML-a
          4. Domyślne odwzorowywanie relacji
      2. Odwzorowywanie relacji reprezentowanych przez kolekcje
        1. Relacja reprezentowana przez listę uporządkowaną
          1. Odwzorowanie listy uporządkowanej za pomocą zapisów XML-a
        2. Relacja reprezentowana przez mapę
          1. Odwzorowanie mapy za pomocą zapisów XML-a
      3. Encje odłączone i typ wyliczeniowy FetchType
      4. Propagacja kaskadowa
        1. Tryb PERSIST
        2. Tryb MERGE
        3. Tryb REMOVE
        4. Tryb REFRESH
        5. Tryb ALL
        6. Kiedy należy stosować technikę propagacji kaskadowej
    8. 8. Dziedziczenie encji
      1. Reprezentacja hierarchii klas w formie pojedynczej tabeli
        1. Zalety
        2. Wady
      2. Jedna tabela dla konkretnej klasy
        1. Zalety
        2. Wady
      3. Jedna tabela dla każdej podklasy
        1. Zalety
        2. Wady
      4. Strategie mieszane
      5. Nieencyjne klasy bazowe
    9. 9. Zapytania i język EJB QL
      1. Interfejs Query API
        1. Parametry
        2. Parametry reprezentujące datę i godzinę
        3. Dzielenie wyników na strony
        4. Wskazówki
        5. Tryb opróżniania kolejki zadań
      2. Język EJB QL
        1. Nazwy schematu abstrakcyjnego
        2. Proste zapytania
        3. Odczytywanie encji i właściwości reprezentujących relacje
        4. Wyrażenia konstruktora
        5. Operatory IN oraz INNER JOIN
        6. Operator LEFT JOIN
        7. Złączenia ze wstępnym odczytywaniem danych
        8. Słowo kluczowe DISTINCT
        9. Klauzula WHERE i wartości stałe
        10. Klauzula WHERE i kolejność operatorów
        11. Klauzula WHERE i operatory arytmetyczne
        12. Klauzula WHERE i operatory logiczne
        13. Klauzula WHERE i symbole porównań
        14. Klauzula WHERE i semantyka równości
        15. Klauzula WHERE i operator BETWEEN
        16. Klauzula WHERE i operator IN
        17. Klauzula WHERE i operator IS NULL
        18. Klauzula WHERE i operator IS EMPTY
        19. Klauzula WHERE i operator MEMBER OF
        20. Klauzula WHERE i operator LIKE
        21. Wyrażenia funkcjonalne
          1. Wyrażenia funkcjonalne w klauzuli WHERE
          2. Funkcje zwracające daty i godziny
          3. Funkcje agregujące stosowane w klauzuli SELECT
        22. Klauzula ORDER BY
        23. Klauzule GROUP BY oraz HAVING
        24. Podzapytania
          1. Wyrażenie ALL, ANY oraz SOME
          2. Operator EXISTS
        25. Zbiorowe aktualizowanie i usuwanie rekordów
      3. Zapytania rdzenne
        1. Skalarne zapytania rdzenne
        2. Proste zapytania rdzenne zwracające encje
        3. Złożone zapytania rdzenne
          1. Zapytania rdzenne z wieloma encjami
          2. Mieszane zapytania rdzenne zwracające wartości skalarne i encje
      4. Zapytania nazwane
        1. Nazwane zapytania rdzenne
    10. 10. Wywołania zwrotne i klasy nasłuchujące
      1. Zdarzenia zwrotne
      2. Wywołania zwrotne klas komponentów encyjnych
      3. Klasy nasłuchujące encji
        1. Domyślne klasy nasłuchujące encji
        2. Dziedziczenie i klasy nasłuchujące
    11. 11. Komponenty sesyjne
      1. Bezstanowy komponent sesyjny
        1. Komponent EJB ProcessPayment
          1. Tabela relacyjnej bazy danych: PAYMENT
          2. Interfejs biznesowy: ProcessPayment
          3. Encje przekazywane za pośrednictwem parametrów
          4. Obiekty dziedziny: klasy CreditCardDO oraz CheckDO
          5. Wyjątek aplikacji: PaymentException
          6. Klasa komponentu: ProcessPaymentBean
          7. Uzyskiwanie dostępu do właściwości środowiskowych (wstrzykiwanie)
        2. Deskryptor wdrożenia w formacie XML
      2. Interfejs SessionContext
        1. Interfejs EJBContext
      3. Cykl życia bezstanowego komponentu sesyjnego
        1. Stan „nie istnieje”
        2. Stan „w puli gotowych komponentów”
          1. Przechodzenie w stan „w puli gotowych komponentów”
          2. Funkcjonowanie w puli gotowych komponentów
          3. Wychodzenie ze stanu „w puli gotowych komponentów” — śmierć egzemplarza bezstanowego komponentu sesyjnego
      4. Stanowy komponent sesyjny
        1. Przygotowywanie środowiska dla komponentu EJB TravelAgent
        2. Komponent EJB TravelAgent
          1. Interfejs zdalny: TravelAgentRemote
          2. Obiekt dziedziny: klasa TicketDO
          3. Rzut oka na perspektywę klienta
          4. Klasa komponentu: TravelAgentBean
          5. Metoda bookPassage()
        3. Deskryptor wdrożenia w formacie XML
      5. Cykl życia stanowego komponentu sesyjnego
        1. Stan „nie istnieje”
        2. Stan „gotowy do obsługi wywołania”
          1. Przechodzenie w stan „gotowy do obsługi wywołania”
          2. Funkcjonowanie w stanie „gotowy do obsługi wywołania”
          3. Wychodzenie ze stanu „gotowy do obsługi wywołania”
        3. Stan „pasywowany”
          1. Wyjątki systemowe
      6. Stanowe komponenty sesyjne i rozszerzone konteksty utrwalania
      7. Zagnieżdżanie stanowych komponentów sesyjnych
    12. 12. Komponenty sterowane komunikatami
      1. Usługa JMS i komponenty sterowane komunikatami
        1. Usługa JMS jako zasób
          1. Ponowna implementacja komponentu EJB TravelAgent z użyciem komunikatów JMS
          2. Obiekty ConnectionFactory i Topic
          3. Obiekty Connection i Session
          4. Obiekt MessageProducer
          5. Typy komunikatów
        2. Aplikacja klienta JMS
        3. JMS jako usługa asynchroniczna
        4. Modele przesyłania komunikatów JMS
          1. Model publikacja-subskrypcja
          2. Model punkt-punkt
          3. Który model powinniśmy stosować?
        5. Komponenty sesyjne nie powinny otrzymywać komunikatów
        6. Dodatkowe informacje o usłudze JMS
      2. Komponenty sterowane komunikatami JMS
        1. Komponent EJB ReservationProcessor
        2. Klasa ReservationProcessorBean
          1. Interfejs MessageDrivenContext
          2. Interfejs MessageListener
          3. Przepływ zadań i integracja z aplikacjami B2B: metoda onMessage()
          4. Wysyłanie komunikatów przez komponenty sterowane komunikatami
        3. Adnotacja @MessageDriven
          1. Adnotacja @ActivationConfigProperty
          2. Selektor komunikatów
          3. Tryb potwierdzania
          4. Trwałość subskrypcji
        4. Deskryptor wdrożenia w formacie XML
        5. Aplikacje klienckie komponentu ReservationProcessor
          1. Producent komunikatu o rezerwacji
          2. Konsument komunikatu reprezentującego bilet
      3. Cykl życia komponentu sterowanego komunikatami
        1. Stan „nie istnieje”
        2. Stan „w puli gotowych komponentów”
          1. Przechodzenie do stanu „w puli gotowych komponentów”
          2. Życie w stanie „w puli gotowych komponentów”
          3. Wychodzenie ze stanu „w puli gotowych komponentów”: śmierć egzemplarza komponentu MDB
      4. Komponenty sterowane komunikatami wykorzystujące konektory
      5. Wiązanie komunikatów
    13. 13. Usługa Timer Service
      1. Harmonogram konserwacji statków linii Titan
      2. Interfejs Timer Service API
        1. Interfejs TimerService
          1. Wyjątki
        2. Obiekt Timer
          1. Anulowanie liczników czasowych
          2. Identyfikowanie liczników czasowych
          3. Uzyskiwanie pozostałych informacji z liczników czasowych
          4. Obiekt TimerHandle
          5. Wyjątki
      3. Transakcje
      4. Liczniki czasowe bezstanowych komponentów sesyjnych
      5. Liczniki czasowe komponentów sterowanych komunikatami
        1. Problemy związane ze stosowaniem usługi Timer Service
          1. Słowo o programie cron
          2. Proponowane udoskonalenia usługi Timer Service
          3. Komponenty sterowane komunikatami: standardowe właściwości konfiguracyjne
          4. Pozostałe niedoskonałości interfejsu Timer API
      6. Słowo końcowe
    14. 14. Kontekst JNDI ENC i mechanizm wstrzykiwania
      1. Kontekst JNDI ENC
        1. Co można rejestrować w kontekście JNDI ENC?
        2. Jak należy wypełniać kontekst JNDI ENC?
        3. Wypełnianie kontekstu ENC za pomocą elementów XML-a
        4. Wypełnianie kontekstu ENC za pomocą adnotacji
        5. Jak można się odwoływać do referencji zdefiniowanych w kontekście ENC?
          1. Stosowanie interfejsu EJBContext
          2. Wstrzykiwanie za pomocą adnotacji
          3. Domyślna nazwa ENC
          4. Wstrzykiwanie za pomocą elementów deskryptora wdrożenia
          5. Przykrywanie referencji za pomocą elementów XML-a
          6. Wstrzykiwanie i dziedziczenie
      2. Referencje i rodzaje wstrzyknięć
        1. Referencje do komponentów EJB
          1. Adnotacja @javax.ejb.EJB
          2. Referencje zdalne do komponentów EJB konfigurowane za pomocą elementów XML-a
          3. Referencje lokalne do komponentów EJB konfigurowane za pomocą elementów XML-a
          4. Niejednoznaczne i przeciążane nazwy komponentów EJB
          5. Przetwarzanie referencji do komponentów EJB
        2. Referencje do obiektu EntityManagerFactory
          1. Adnotacja @javax.persistence.PersistenceUnit
          2. Referencje do obiektów EntityManagerFactory definiowane w deskryptorach wdrożenia
          3. Nazwy jednostek o ograniczonym zasięgu oraz nazwy przeciążone
        3. Referencje do usługi EntityManager
          1. Adnotacja @javax.persistence.PersistenceContext
          2. Referencje do usługi EntityManager deklarowane w deskryptorze wdrożenia
          3. Nazwy jednostek o ograniczonym zasięgu oraz nazwy przeciążone
        4. Referencje do zasobów
          1. Adnotacja @javax.annotation.Resource
          2. Zasoby współdzielone
          3. Referencje do zasobów deklarowane w deskryptorze wdrożenia
        5. Środowisko zasobów i obiekty zarządzane
        6. Wpisy środowiskowe
        7. Referencje do adresatów komunikatów
          1. Referencje do zasobów deklarowane w deskryptorze wdrożenia
          2. Stosowanie adnotacji @Resource
        8. Referencje do usług Web Services
          1. Referencje do zasobów deklarowane w deskryptorze wdrożenia
          2. Stosowanie adnotacji @javax.xml.ws.WebServiceRef
    15. 15. Obiekty przechwytujące
      1. Metody przechwytujące
        1. Klasa obiektu przechwytującego
        2. Stosowanie obiektów przechwytujących
          1. Oznaczanie adnotacjami metod i klas
          2. Deklarowanie obiektów przechwytujących w deskryptorze wdrożenia
          3. Domyślne obiekty przechwytujące
          4. Wyłączanie obiektów przechwytujących
      2. Obiekty przechwytujące i wstrzykiwanie
        1. Wstrzykiwanie za pomocą elementów XML-a
      3. Przechwytywanie zdarzeń związanych z cyklem życia komponentu
        1. Niestandardowe adnotacje wstrzykujące
      4. Obsługa wyjątków
        1. Przerywanie wykonywania wywołań metod
        2. Przechwytywanie i ponowne generowanie wyjątków
      5. Cykl życia obiektu przechwytującego
      6. Stosowanie adnotacji @AroundInvoke dla metod samych komponentów EJB
      7. Kierunki rozwoju obiektów przechwytujących
        1. Adnotacje definiujące zachowania
        2. Sugestie mile widziane
    16. 16. Transakcje
      1. Transakcje ACID
        1. Czy komponent TravelAgent jest atomowy?
        2. Czy komponent TravelAgent jest spójny?
        3. Czy komponent TravelAgent jest izolowany?
        4. Czy komponent TravelAgent jest trwały?
      2. Deklaracyjne zarządzanie transakcjami
        1. Zakres transakcji
        2. Atrybuty transakcji
          1. Korzystanie z adnotacji @TransactionAttribute
          2. Umieszczanie atrybutu transakcji w XML-u
          3. Zdefiniowane atrybuty transakcji
          4. Trwałość EJB 3.0 i atrybuty transakcji
          5. Komponenty sterowane komunikatami i atrybuty transakcji
          6. Punkty końcowe EJB i atrybuty transakcji
        3. Propagacja transakcji
          1. Transakcje i propagacja kontekstu trwałości
      3. Izolacja i zabezpieczanie bazy danych
        1. Odczyty brudne, powtarzalne i fantomowe
          1. Odczyty brudne
          2. Odczyty powtarzalne
          3. Odczyty fantomowe
        2. Zabezpieczanie bazy danych
        3. Poziomy izolacji transakcji
        4. Kompromis pomiędzy wydajnością a spójnością
          1. Kontrolowanie poziomów izolacji
        5. Zabezpieczanie optymistyczne
        6. Zabezpieczanie programowe
      4. Nietransakcyjne komponenty EJB
      5. Jawne zarządzanie transakcjami
        1. Propagacja transakcji w transakcjach zarządzanych przez komponent
          1. Komponenty sterowane komunikatami oraz zarządzanie transakcjami przez komponent
        2. Decyzje heurystyczne
        3. UserTransaction
        4. Status
        5. Metody rollback interfejsu EJBContext
      6. Wyjątki i transakcje
        1. Wyjątki aplikacji kontra wyjątki systemowe
          1. Wyjątki systemowe
          2. Wyjątki aplikacji
      7. Transakcyjne stanowe komponenty sesyjne
        1. Transakcyjny stan Method-Ready
          1. Przechodzenie w transakcyjny stan Method-Ready
          2. Życie w transakcyjnym stanie Method-Ready
      8. Konwersacyjny kontekst trwałości
    17. 17. Bezpieczeństwo
      1. Uwierzytelnianie i tożsamość
      2. Autoryzacja
        1. Przydzielanie uprawnień metodom
        2. Identyfikowanie określonych metod w XML-u
          1. Deklaracje symboli wieloznacznych
          2. Deklaracje metod nazwanych
          3. Deklaracje określonych metod
          4. Rozróżnianie zdalny/lokalny
        3. Metody wyłączone
      3. Identyfikator bezpieczeństwa RunAs
      4. Bezpieczeństwo programowe
    18. 18. EJB 3.0: standardy usług WWW
      1. Ogólnie o usługach WWW
      2. XML Schema oraz XML Namespaces
        1. XML Schema
        2. Przestrzenie nazw (XML Namespaces)
      3. SOAP 1.1
        1. Style usług WWW
        2. Wymiana komunikatów SOAP z wykorzystaniem HTTP
        3. Teraz to widzisz, a teraz nie
      4. WSDL 1.1
        1. Element <definitions>
        2. Element <portType> oraz <message>
        3. Element <types>
        4. Elementy <binding> oraz <service>
      5. UDDI 2.0
      6. Od standardu do implementacji
    19. 19. EJB 3.0 i usługi WWW
      1. Dostęp do usług WWW za pomocą JAX-RPC
        1. Generowanie artefaktów JAX-RPC za pomocą WSDL
        2. Wywoływanie usługi przez EJB
        3. Element instalacji <service-ref>
        4. Plik odwzorowujący JAX-RPC
      2. Definiowanie usługi WWW za pomocą JAX-RPC
        1. Dokument WSDL
        2. Interfejs punktu końcowego usługi
        3. Klasa komponentu bezstanowego
        4. Pliki wdrożenia
          1. Plik WSDL
          2. Plik odwzorowujący JAX-RPC
          3. Plik webservices.xml
      3. Korzystanie z JAX-WS
        1. Adnotacja @WebService
        2. Adnotacja @WebMethod
        3. Adnotacja @SOAPBinding
        4. Adnotacja @WebParam
        5. Adnotacja @WebResult
        6. Adnotacja @OneWay
        7. Separacja kontraktu dla usług WWW
        8. Klasa usługi
        9. Interfejs punktu końcowego usługi
        10. Adnotacja @WebServiceRef
      4. Inne adnotacje i API
    20. 20. Java EE
      1. Serwlety
      2. Strony JavaServer
      3. Komponenty WWW i EJB
      4. Wypełnianie luki
        1. Zakres modułu trwałości
        2. Komponenty klienta aplikacji Java EE
        3. Obsługiwane usługi
      5. Składanie kawałków w jedną całość
    21. 21. Projektowanie EJB w zastosowaniach rzeczywistych
      1. Projekt wstępny — kontenery i bazy danych
        1. Możliwości kontenera
        2. Możliwości bazy danych
      2. Projekt właściwy
        1. Identyfikacja jednostek biznesowych
        2. Architektura techniczna
        3. Identyfikacja EJB i komponentów encyjnych
          1. Identyfikowanie komponentów encyjnych
          2. Identyfikowanie komponentów sesyjnych
          3. Identyfikowanie komponentów sterowanych komunikatami
        4. Szczegóły EJB
          1. Bezstanowe czy stanowe komponenty sesyjne?
          2. Interfejsy lokalne czy zdalne?
        5. Szczegóły encji
          1. Zwracanie danych jednostkowych przez EJB
          2. Minimalizowanie dostępu do bazy danych
          3. Buforowanie
          4. Łączenie zapytań
          5. Minimalizowanie aktualizacji
        6. Uzupełnianie projektu
          1. Mieszanie typów encji
          2. Minimalizowanie zakresu transakcji
        7. Wyjątki
          1. Identyfikowanie wyjątków biznesowych
          2. Projektowanie hierarchii wyjątków
          3. Decydowanie się na wyjątki powodujące wycofanie transakcji
          4. Wyjątki weryfikowalne kontra nieweryfikowalne
          5. Opakowywanie wyjątków podsystemowych
        8. Klasy narzędziowe
      3. Czy korzystać z EJB?
        1. Kiedy korzystać z EJB?
        2. Kiedy nie korzystać z EJB?
        3. Alternatywy dla EJB
        4. Alternatywy dla Java Persistence
          1. JDBC
          2. Inni
      4. Opakowywanie
  6. II. Podręcznik użytkownika serwera JBoss
    1. 22. Instalacja i konfiguracja serwera JBoss
      1. O serwerze JBoss
      2. Instalacja serwera aplikacji JBoss
        1. Struktura katalogów zainstalowanego serwera JBoss
        2. Pliki konfiguracyjne serwera JBoss
        3. Wdrażanie aplikacji w serwerze JBoss
      3. Krótki przegląd struktury wewnętrznej serwera JBoss
        1. Architektura mikrojądra
        2. Wdrażanie „na gorąco”
        3. Uruchamianie za pośrednictwem sieci
        4. Wydzielone usługi wywołujące
      4. Wdrażanie i konfigurowanie kodu źródłowego ćwiczeń
        1. Struktura katalogów kodu źródłowego ćwiczeń
        2. Konfiguracja środowiska
    2. 23. Ćwiczenia do rozdziału 4.
      1. Ćwiczenie 4.1. Pierwsze komponenty w serwerze JBoss
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza pliku build.xml
        5. Pliki serwera aplikacji JBoss
          1. Zdalne związki z przestrzenią nazw JNDI
          2. Plik persistence.xml
        6. Testowanie i uruchamianie aplikacji klienckich
          1. Plik Client.java
        7. Przeglądanie bazy danych
      2. Ćwiczenie 4.2. Deklarowanie związków z interfejsem JNDI za pomocą adnotacji
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Stosowanie adnotacji @RemoteBinding
          1. Plik TravelAgentBean.java
          2. Plik Client.java
        5. Uruchamianie aplikacji klienckiej
      3. Ćwiczenie 4.3. Deklarowanie związków z interfejsem JNDI za pomocą elementów języka XML
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Deskryptor wdrożenia jboss.xml
          1. Plik jboss.xml
          2. Plik Client.java
        5. Uruchamianie aplikacji klienckiej
    3. 24. Ćwiczenia do rozdziału 5.
      1. Ćwiczenie 5.1. Interakcja z usługą EntityManager
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Stosowanie metod find() i merge()
          1. Plik TravelAgentBean.java
          2. Uruchamianie aplikacji klienckiej
        5. Konteksty o zasięgu transakcyjnym kontra rozszerzone konteksty utrwalania
          1. Plik TransactionPersistenceContextBean.java
          2. Plik Client_2.java
          3. Uruchamianie aplikacji klienckiej
        6. Znaczenie ustawień FlushModeType
          1. Plik TravelAgentBean.java
          2. Uruchamianie aplikacji klienckiej
      2. Ćwiczenie 5.2. Utrwalanie w autonomicznych aplikacjach Javy
        1. Plik build.xml
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza zawartości gotowego pliku JAR
          1. Plik persistence.xml
        5. Analiza autonomicznej aplikacji Javy
    4. 25. Ćwiczenia do rozdziału 6.
      1. Ćwiczenie 6.1. Podstawowe odwzorowywanie właściwości
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza encji Customer
          1. Plik Customer.java
        5. Analiza klasy TravelAgentBean
          1. Plik TravelAgentBean.java
        6. Analiza aplikacji klienckiej
        7. Uruchamianie aplikacji klienckiej
      2. Ćwiczenie 6.2. Adnotacja @IdClass
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza przykładowych plików z kodem źródłowym
        5. Uruchamianie aplikacji klienckiej
      3. Ćwiczenie 6.3. Adnotacja @EmbeddedId
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza encji Customer
          1. Plik Customer.java
        5. Analiza pozostałych plików
        6. Uruchamianie aplikacji klienckiej
      4. Ćwiczenie 6.4. Odwzorowywanie pojedynczych encji w wielu tabelach
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza encji Customer
          1. Plik Customer.java
        5. Analiza pozostałych plików
        6. Uruchamianie aplikacji klienckiej
      5. Ćwiczenie 6.5. Klasy osadzone
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza encji Customer
        5. Analiza pozostałych plików
        6. Uruchamianie aplikacji klienckiej
    5. 26. Ćwiczenia do rozdziału 7.
      1. Ćwiczenie 7.1. Propagacja kaskadowa
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza encji
        5. Analiza klasy Client1
          1. Plik Client1.java
          2. Metoda createCustomerAddress()
          3. Metoda cascadeMergeAddress()
          4. Metoda cascadeRemoveAddress()
        6. Uruchamianie aplikacji Client1
        7. Analiza klasy Client2
          1. Plik Client2.java
        8. Uruchamianie aplikacji Client2
      2. Ćwiczenie 7.2. Relacje odwrotne
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza encji
        5. Analiza klasy Client1
          1. Plik Client1.java
        6. Uruchamianie aplikacji Client1
      3. Ćwiczenie 7.3. Leniwa inicjalizacja
        1. Uruchomienie serwera JBoss
        2. Kompilacja i wdrażanie przykładowych programów
        3. Inicjalizacja bazy danych
        4. Analiza komponentu EJB DataAccess
          1. Plik DataAccessBean.java
        5. Analiza aplikacji klienckiej
          1. Plik Client.java
        6. Uruchamianie aplikacji klienckiej
    6. 27. Ćwiczenia do rozdziału 8.
      1. Ćwiczenie 8.1. Strategia odwzorowywania hierarchii w pojedynczych tabelach
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza schematu bazy danych
        5. Analiza kodu źródłowego
          1. Plik DataAccessBean.java
          2. Plik Client.java
        6. Uruchamianie aplikacji klienckiej
      2. Ćwiczenie 8.2. Strategia odwzorowywania klas w pojedynczych tabelach
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza schematu bazy danych
        5. Analiza kodu źródłowego
        6. Uruchamianie aplikacji klienckiej
      3. Ćwiczenie 8.3. Strategia dziedziczenia JOINED
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza schematu bazy danych
        5. Analiza kodu źródłowego
        6. Uruchamianie aplikacji klienckiej
    7. 28. Ćwiczenia do rozdziału 9.
      1. Ćwiczenie 9.1. Interfejs Query i podstawy języka zapytań EJB QL
        1. Inicjalizacja bazy danych
        2. Kompilacja i wdrażanie przykładowych programów
        3. Podstawowe informacje o przykładach
        4. Parametry i podział na strony
          1. Uruchamianie programu przykładowego
        5. Klauzula SELECT
          1. Metoda columnResultSet()
          2. Metoda nestedRelationshipPropertyResultSet()
          3. Metoda constructorExpression()
          4. Uruchamianie programu przykładowego
        6. Operatory IN oraz INNER JOIN
          1. Uruchamianie programu przykładowego
        7. Operator LEFT JOIN
          1. Uruchamianie programu przykładowego
        8. Operator JOIN FETCH
          1. Metoda noJoin()
          2. Metoda joinFetch()
          3. Uruchamianie programu przykładowego
        9. Stosowanie słowa kluczowego DISTINCT
          1. Uruchamianie programu przykładowego
        10. Klauzula WHERE i wyrażenia stałe
          1. Uruchamianie programu przykładowego
        11. Klauzula WHERE i słowo kluczowe BETWEEN
          1. Uruchamianie programu przykładowego
        12. Klauzula WHERE i operator IN
          1. Uruchamianie programu przykładowego
        13. Klauzula WHERE i operator IS NULL
          1. Uruchamianie programu przykładowego
        14. Klauzula WHERE i operator IS EMPTY
          1. Uruchamianie programu przykładowego
        15. Klauzula WHERE i operator MEMBER OF
          1. Uruchamianie programu przykładowego
        16. Klauzula WHERE i operator LIKE
          1. Uruchamianie programu przykładowego
        17. Wyrażenia funkcjonalne przetwarzające łańcuchy
          1. Uruchamianie programu przykładowego
        18. Funkcje agregujące
          1. Uruchamianie programu przykładowego
        19. Klauzula ORDER BY
          1. Uruchamianie programu przykładowego
        20. Klauzule GROUP BY i HAVING
          1. Uruchamianie programu przykładowego
        21. Podzapytania
          1. Uruchamianie programu przykładowego
      2. Ćwiczenie 9.2. Rdzenne zapytania języka SQL
        1. Inicjalizacja bazy danych
        2. Kompilacja i wdrażanie przykładowych programów
        3. Analiza programu przykładowego
          1. Metoda nativeSql()
          2. Metoda nativeWithMultipleEntities()
          3. Metoda mixedNative()
        4. Uruchamianie programu przykładowego
    8. 29. Ćwiczenia do rozdziału 10.
      1. Ćwiczenie 10.1. Wywołania zwrotne
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza encji Customer
          1. Plik Customer.java
        5. Analiza komponentu EJB TravelAgent
          1. Plik TravelAgentBean.java
        6. Analiza aplikacji klienckiej
        7. Uruchamianie aplikacji klienckiej
      2. Ćwiczenie 10.2. Obiekty nasłuchujące
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza obiektu nasłuchującego
        5. Analiza komponentu JMX MBean
          1. Plik EntityStats.java
          2. Plik EntityStatsMBean.java
          3. Plik jboss-service.xml
        6. Analiza komponentu encyjnego Customer
        7. Uruchamianie aplikacji klienckiej
        8. Analiza działania konsoli JMX Management Console
    9. 30. Ćwiczenia do rozdziału 11.
      1. Ćwiczenie 11.1. Wywołania zwrotne
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza komponentu EJB ProcessPayment
        5. Analiza komponentu EJB DataAccess
        6. Analiza aplikacji klienckiej
        7. Uruchamianie aplikacji klienckiej
      2. Ćwiczenie 11.2. Przykrywanie ustawień za pomocą elementów XML-a
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza komponentu EJB ProcessPayment
          1. Plik ejb-jar.xml
        5. Analiza aplikacji klienckiej
        6. Uruchamianie aplikacji klienckiej
      3. Ćwiczenie 11.3. Bezstanowy komponent sesyjny bez adnotacji
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Uruchamianie aplikacji klienckiej
      4. Ćwiczenie 11.4. Stanowy komponent sesyjny
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza komponentów EJB ProcessPayment i TravelAgent
        5. Analiza komponentu EJB DataAccess
        6. Analiza aplikacji klienckiej
        7. Uruchamianie aplikacji klienckiej
      5. Ćwiczenie 11.5. Stanowy komponent sesyjny bez adnotacji
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Uruchamianie aplikacji klienckiej
    10. 31. Ćwiczenia do rozdziału 12.
      1. Ćwiczenie 12.1. Komponent sterowany komunikatami
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Utworzenie kolejki usługi JMS
          1. Dodawanie kolejki JMS za pośrednictwem pliku konfiguracyjnego
          2. Plik jbossmq-titanqueues-service.xml
        4. Kompilacja i wdrażanie przykładowych programów
        5. Analiza komponentów EJB ProcessPayment i TravelAgent
        6. Analiza aplikacji klienckiej
          1. Plik JmsClient_ReservationProducer.java
          2. Plik JmsClient_TicketConsumer.java
        7. Analiza komponentu EJB ReservationProcessor
        8. Uruchamianie aplikacji klienckich
    11. 32. Ćwiczenia do rozdziału 13.
      1. Ćwiczenie 13.1. Usługa EJB Timer Service
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza komponentu EJB ShipMaintenance
        5. Analiza aplikacji klienckiej
        6. Uruchamianie aplikacji klienckiej
    12. 33. Ćwiczenia do rozdziału 15.
      1. Ćwiczenie 15.1. Obiekty przechwytujące EJB
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza kodu źródłowego
        5. Uruchamianie aplikacji
      2. Ćwiczenie 15.2. Przechwytywanie wywołań zwrotnych EJB
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i wdrażanie przykładowych programów
        4. Analiza kodu źródłowego
        5. Uruchamianie aplikacji klienckiej
    13. 34. Ćwiczenia do rozdziału 16.
      1. Ćwiczenie 16.1. Konwersacyjny kontekst trwałości
        1. Uruchomienie JBoss
        2. Inicjalizacja bazy danych
        3. Kompilacja i instalacja przykładowych programów
        4. Analizowanie kodu po stronie serwera
        5. Analizowanie kodu klienta
        6. Uruchamianie aplikacji
    14. 35. Ćwiczenia do rozdziału 17.
      1. Ćwiczenie 17.1. Bezpieczeństwo
        1. Konfiguracja bezpieczeństwa w JBoss
          1. users-titan.properties
          2. roles-titan.properties
        2. Uruchomienie serwera JBoss
        3. Inicjalizacja bazy danych
        4. Kompilowanie i instalowanie przykładowych programów
        5. Analizowanie klasy ProcessPaymentBean
        6. Analizowanie kodu klienta
        7. Uruchamianie aplikacji
      2. Ćwiczenie 17.2. Zabezpieczanie za pomocą XML
        1. Konfiguracja bezpieczeństwa w serwerze JBoss
        2. Uruchomienie serwera JBoss
        3. Inicjalizacja bazy danych
        4. Kompilowanie i instalowanie przykładowych programów
        5. Analizowanie plików konfiguracyjnych JBoss
        6. Uruchamianie aplikacji
    15. 36. Ćwiczenia do rozdziału 19.
      1. Ćwiczenie 19.1. Udostępnianie komponentu bezstanowego
        1. Uruchomienie serwera JBoss
        2. Inicjalizacja bazy danych
        3. Kompilowanie i instalowanie przykładowych programów
        4. Analizowanie komponentu TravelAgentBean
        5. Analizowanie wygenerowanego WSDL
        6. Analizowanie kodu klienta
        7. Deskryptor wdrożenia Java EE klienta aplikacji
        8. Deskryptor wdrożenia JBoss klienta aplikacji
        9. Analizowanie interfejsu punktu końcowego usługi
        10. Analizowanie pliku odwzorowującego JAX-RPC
        11. Uruchamianie klienta
        12. Przeglądanie bazy danych
      2. Ćwiczenie 19.2. Korzystanie z klienta .NET
        1. Instalowanie niezbędnego oprogramowania
          1. Windows
          2. Unix
        2. Uruchomienie serwera JBoss
        3. Inicjalizacja bazy danych
        4. Kompilowanie i instalowanie przykładowych programów
        5. Analizowanie kodu klienta
        6. Kompilowanie kodu klienta
          1. Windows
          2. Unix
        7. Uruchamianie klienta
  7. III. Dodatki
    1. A. Konfiguracja bazy danych JBoss
      1. Konfiguracja bazy danych
        1. Instalacja podstawowa
        2. titandb-ds.xml
      2. Analizowanie pliku persistence.xml
        1. persistence.xml
      3. Uruchomienie JBossa
      4. Kompilowanie i instalowanie przykładowych programów
      5. Analizowanie i uruchamianie aplikacji klienta
  8. B. O autorach
  9. Indeks
  10. Kolofon
  11. Copyright