< Wstecz | Dalej >

Lekcja 2.2: Powiązanie tabeli pracowników ze źródłem danych usługi Web Service

Aplikacja Firmowa książka adresowa wyświetla listę wszystkich aktualnych rekordów pracowników w katalogu. Rekordy są wyświetlane w obiekcie JTable (employeesTable) w kolumnach z możliwością sortowania, które zawierają nazwisko, imię, adres e-mail i identyfikator pracownika. W celu pobrania rekordów do tabeli należy powiązać obiekt employeesTable z obiektem danych zwracanym przez źródło danych przykładowej usługi Web Service.

Przegląd obiektów danych, źródeł danych i konsolidatorów

Aby pobrać lokalny obiekt danych do pracy z obiektem employeesTable, należy użyć edytora wizualnego w celu dodania do aplikacji źródła danych. Źródło danych łączy się z serwerem proxy przykładowej usługi Web Service i wykrywa metody usługi dostępne dla aplikacji. Następnie należy wybrać metodę usługi getLightEmployeeRecord dostępną w źródle danych. Wreszcie należy powiązać obiekt employeesTable w aplikacji z polami zwracanymi w obiekcie danych wiersza (lightEmployeeRecordRows).

Wszystkie te źródła danych i obiekty danych można szybko i łatwo utworzyć za pomocą wbudowanych klas konsolidatora w wizualnym edytorze Java. Edytor wizualny udostępnia zestaw ogólnych interfejsów i klas generowanych w projekcie w miarę wiązania komponentów wizualnych z fabrykami danych. Klasy konsolidatora są domyślnie generowane w pakiecie o nazwie jve.generated. Edytor wizualny udostępnia klasy konsolidatora jako ogólną implementację, którą można następnie dostosować i rozszerzyć w celu spełnienia wymagań aplikacji. W ramach tego kursu zostanie przedstawiona wszechstronność i elastyczność nawet podstawowego i prostego zastosowania domyślnych klas konsolidatora.

Ważne: Przed rozpoczęciem tego ćwiczenia zdecydowanie zaleca się przeczytanie następujących tematów pomocy. Tematy te pozwolą uzyskać więcej informacji na temat funkcjonalności i logiki obiektów danych, źródeł danych i konsolidatorów udostępnianych przez wizualny edytor Java:
  • Przegląd konsolidatorów danych
  • Skorowidz funkcji API konsolidatora

W ramach tego kursu w aplikacji użyte zostanie źródło danych usługi Web Service, klika typów obiektów danych i klika typów konsolidatorów. Podczas dodawania instancji tych obiektów do aplikacji edytor wizualny dodaje niezbędne klasy do pakietu jve.generated projektu, gdzie można rozszerzyć, zastąpić lub przebudować logikę powiązania danych. Wizualny edytor Java zapewnia wizualną obsługę obiektów powiązań, wyświetlając w wolnym obszarze formularza w widoku projektowania obiekty danych, źródła danych i konsolidatory używane przez aplikację. Edytor wizualny rysuje linie między elementami wizualnymi i obiektami danych oraz źródłami danych w celu wskazania bieżących powiązań dla dowolnego wybranego obiektu.

Następujący diagram jest przykładowym przeglądem sposobu interakcji komponentów wizualnych, konsolidatorów, obiektów danych i źródeł danych. Aplikacja budowana w ramach tego kursu ilustruje trochę bardziej złożone i twórcze zastosowanie konsolidatorów. Ten diagram niedokładnie reprezentuje konsolidatory, obiekty danych i źródła danych w przykładowej budowanej aplikacji.

Rysunek 1. Na tym diagramie przedstawiono przykładową relację między komponentami wizualnymi, konsolidatorami, obiektami danych i źródłami danychNa tym diagramie przedstawiono relację między komponentami wizualnymi, konsolidatorami, obiektami danych i źródłami danych

Na Rysunku 1 każdy komponent wizualny ma własny konsolidator łączący go z obiektem danych lub, w przypadku przycisku, źródłem danych. Konsolidatory pól tekstowych wiążą pole z konkretną właściwością obiektu danych. Zarówno obiekt danych wiersza, jak i obiekt danych na tym diagramie pobierają swoje dane z bezpośrednich wywołań usługi źródła danych. Obiekt danych dla pól tekstowych używa wartości klucza z wybranego wiersza w tabeli jako argumentu wywołania Usługi2, zwracającej pełny rekord, który najprawdopodobniej zawiera więcej informacji o wybranym wierszu w tabeli. Z kolei ten pełny rekord jest używany jako argument dla konsolidatora czynności przycisku podczas wywoływania Usługi3, która może być metodą aktualizującą wartości wprowadzone w polach. Więcej szczegółowych objaśnień dotyczących obiektów danych, konsolidatorów danych i źródeł danych można uzyskać, korzystając z wcześniej udostępnionych odsyłaczy.

Generowanie w projekcie serwera proxy Java usługi Web Service za pomocą dostarczonego pliku WSDL

Aby móc korzystać z usługi Web Service działającej na serwerze, aplikacja Java wymaga serwera proxy Java, czyli klienta, do współpracy z usługą. Przy użyciu pliku WSDL można wygenerować w projekcie Java serwer proxy Java, korzystając z kreatora klienta usługi Web Service. Projekt MyDirectory zawiera plik EmployeeDirectory.wsdl, który zostanie użyty do wygenerowania serwera proxy. Po wygenerowaniu serwera proxy Java można utworzyć źródło danych reprezentujące usługę Web Service i rozpocząć wiązanie elementów wizualnych.

Ważne: W pliku WSDL używanym w tym ćwiczeniu przyjęto, że użytkownik wdrożył usługę Web Service w lokalnej instalacji serwera WebSphere Application Server i użył domyślnego portu dla hosta lokalnego (http://localhost:9080). W przypadku innego wdrożenia pliku EAR należy odpowiednio zmodyfikować plik WSDL przed kontynuowaniem pracy.

Aby wygenerować w projekcie serwer proxy Java usługi Web Service:

  1. W menu głównym kliknij opcję Plik > Nowy > Inne i wybierz kreatora Usługi Web Services > Klient Web Service. Jeśli kategoria Usługi Web Services nie jest wyświetlana, wybierz opcję Wyświetl wszystkie kreatory.
  2. Za pomocą kreatora zdefiniuj klienta usługi Web Service:
    1. W polu Definicja usługi wprowadź nazwę pliku WSDL dostępnego w projekcie MyDirectory: /MyDirectory/EmployeeDirectory.wsdl.
    2. W polu Typ klienta wybierz opcję Serwer proxy Java.
    3. Pasek suwaka ustaw na opcję Wdrażanie klienta.
    4. Upewnij się, że serwer i środowisko wykonawcze usługi Web Service są odpowiednio skonfigurowane dla używanego serwera. Opisane w tym kursie kroki zostały przetestowane na serwerach WebSphere 6.0 i WebSphere 6.1 ze środowiskiem wykonawczym IBM WebSphere JAX-RPC.
    5. Upewnij się, że klient serwera proxy Java jest wyprowadzony do projektu MyDirectory.

    Kreator klienta usługi Web Service

  3. Kliknij przycisk Zakończ. Kreator klienta usługi Web Service generuje w projekcie użytkownika serwer proxy Java w nowym pakiecie (directory.service).

Powiązanie tabeli employeesTable z obiektem danych wiersza zwracanym przez usługę Web Service

Ponieważ tabela employeesTable jest pierwszym komponentem wizualnym wiązanym w tej aplikacji, należy utworzyć źródło danych wskazujące serwer proxy przykładowej usługi Web Service, który został właśnie dodany do projektu. Podczas wiązania pozostałych komponentów wizualnych w następnych ćwiczeniach użytkownik ponownie użyje tego źródła danych. W tym kroku użytkownik doda źródło danych usługi Web Service oraz obiekt danych lightEmployeeRecordRows.

Aby powiązać tabelę pracowników:
  1. W widoku komponentów bean Java lub w widoku projektowania wybierz tabelę employeesTable (upewnij się, że nie został wybrany jej obiekt nadrzędny JScrollPane). W obszarze projektowania wyświetlona zostanie u góry tabeli employeesTable niewielka zakładka o nazwie Wiązanie.

    Zakładka Wiązanie obiektu JTable na kanwie graficznej

  2. Kliknij zakładkę Wiązanie tabeli employeesTable. Można też kliknąć prawym przyciskiem myszy tabelę employeesTable i wybrać opcję Właściwości powiązań.
  3. Ponieważ w aplikacji nie ma żadnych obiektów danych, należy taki obiekt dodać. Kliknij opcję Nowy obiekt danych źródła danych.
  4. W polu Typ źródła wybierz opcję Usługa Web Service.
  5. Ponieważ do aplikacji nie zostało jeszcze dodane źródło danych usługi Web Service, należy je teraz dodać. Obok pola Źródło danych kliknij przycisk ..., aby otworzyć okno dialogowe dodawania źródła danych usługi Web Service, które wyszuka w projekcie dostępne klienty usługi Web Service, czyli serwery proxy.
  6. Wybierz usługę Web Service EmployeeDirectory i kliknij przycisk Zakończ. Do pliku DirectoryApp.java zostanie dodane nowe źródło danych.

    Okno dialogowe dodawania źródła danych usługi Web Service

  7. W oknie dialogowym nowego obiektu danych źródła danych wybierz metodę getLightEmployeeRecords() w polu Usługa źródła i zaakceptuj domyślną nazwę nowego obiektu danych: lightEmployeeRecordRows. Ta metoda usługi nie wymaga żadnych parametrów. Kliknij przycisk OK. Nowy obiekt danych zostanie utworzony i wyświetlony w wolnym obszarze formularza w widoku projektowania.

    Okno dialogowe nowego obiektu danych źródła danych

    Wskazówka: Ponieważ wykonywane jest wiązanie tabeli, w oknie dialogowym Nowy obiekt danych źródła danych wyświetlane są tylko usługi zwracające obiekty danych wiersza. W tym przypadku metoda getLightEmployeeRecords() jest jedyną dostępną usługą zwracającą tablicę obiektów.
  8. W oknie dialogowym Powiązania danych tabeli wybierz obiekt danych lightEmployeeRecordRows.
  9. Teraz należy wybrać właściwości obiektu danych lightEmployeeRecordRows, który ma być wyświetlany w tabeli employeesTable:

    Okno dialogowe Powiązania danych tabeli

    1. Kliknij przycisk podwójnej strzałki Przycisk podwójnej strzałki, aby dodać wszystkie właściwości obiektu do listy Kolumny tabeli.
    2. Użyj strzałek w górę i w dół, aby uporządkować kolumny od góry do dołu w następujący sposób: lastName, firstName, email, employeeID.
    3. Zmień tytuły kolumn: Nazwisko, Imię, Adres e-mail, Identyfikator pracownika.
      Wskazówka: Po zakończeniu wiązania tabeli można zawsze wrócić do właściwości powiązania i zmienić nazwy oraz kolejność kolumn.
    4. Kliknij przycisk OK.
Tabela employeesTable jest teraz powiązana z obiektem danych lightEmployeeRecordRows za pomocą obiektu JRowTableBinder. W przypadku kliknięcia obiektu danych lightEmployeeRecordRows w wolnym obszarze formularza, edytor wizualny narysuje linię od obiektu danych do tabeli. Na tej linii obiekt JRowTableBinder jest reprezentowany przez ikonę konsolidatora tabeli Ikona konsolidatora tabeli. Kolejna linia wskazuje, że obiekt danych używa obiektu webServiceDataSource jako swojego źródła danych.

Widok linii konsolidatora dla obiektu JTable

Punkt kontrolny lekcji

Zwróć uwagę na zmiany w projekcie i aplikacji. W trakcie tej lekcji użytkownik dodał źródło danych usługi Web Service, obiekt danych wiersza i konsolidator wiążący tabelę employeesTable z obiektem danych wiersza.

Sprawdź nowy pakiet (jve.generated) utworzony w projekcie w celu przechowywania wszystkich klas konsolidatora wygenerowanych przez wizualny edytor Java. Zwróć również uwagę na nowy pakiet (directory.service) przechowujący serwer proxy Java usługi Web Service. Opisz lub podsumuj wiedzę zdobytą podczas tej lekcji.

Pakiety projektu MyDirectory

Po uruchomieniu aplikacji Firmowa książka adresowa tabela pracowników zostanie teraz zapełniona przez usługę Web Service istniejącymi rekordami pracowników.

< Wstecz | Dalej >