< Назад | Далее >

Урок 2.2: Связывание таблицы сотрудников с источником данных Web-службы

Приложение My Company Directory отображает список всех текущих записей о сотрудниках в каталоге. Записи отображаются в таблице JTable (employeesTable) в сортируемых столбцах: фамилия, имя, адрес электронной почты и ИД сотрудника. Для получения записей в таблицу необходимо связать таблицу employeesTable с объектом данных, возвращаемым примером источника данных Web-службы.

Показать

Обзор объектов данных, источников данных и редакторов связей

Для передачи локального объекта данных в таблицу employeesTable в приложение нужно будет добавить источник данных с помощью визуального редактора. Источник данных подключается к примеру proxy Web-службы и обнаруживает служебные методы, доступные для приложения. Затем вы выбираете служебный метод getLightEmployeeRecord, доступный в источнике данных. Наконец, вы связываете таблицу employeesTable в приложении с полями, возвращаемыми в объекте данных строки (lightEmployeeRecordRows).

Все эти источники и объекты данных можно создавать быстро и легко с помощью встроенных классов редактора связей в визуальном редакторе для Java. В визуальном редакторе предусмотрен набор стандартных интерфейсов и классов, которые создаются в проекте при связывании визуальных компонентов с фабриками данных. Классы редактора связей создаются по умолчанию в пакете с именем jve.generated. Классы редактора связей поставляются в визуальном редакторе в качестве стандартной реализации, которую можно в дальнейшем настраивать и расширять в зависимости от потребностей приложения. В этом учебнике демонстрируется мощность и гибкость использования классов редактора связей по умолчанию даже на самом простом уровне.

Важное замечание: Перед тем как приступать к этому упражнению настоятельно рекомендуется ознакомиться со следующими разделами справки. В них приведена подробная информация о функциях и логике объектов данных, источников данных и редакторов связей, поставляемых с визуальным редактором для Java:
  • Обзор редакторов связей данных
  • Справочник по API редакторов связей

В рамках этого учебника в приложении предстоит использовать источник данных Web-службы, несколько видов объектов данных и несколько видов редакторов связей. При добавлении экземпляров этих объектов в приложение визуальный редактор добавляет необходимые классы в пакет jve.generated в проекте, где можно расширять, изменять или переписывать логику связывания данных. В визуальном редакторе для Java предусмотрена визуальная поддержка связывания объектов путем отображения объектов данных, источников данных, а также редакторов связей, используемых в приложении, в произвольной области панели эскиза. Визуальный редактор отображает линии между визуальными компонентами и объектами данных, а также источниками данных. Таким образом он показывает текущие связи для любого выбранного объекта.

На следующей диаграмме приведен простой обзор взаимодействия визуальных компонентов, редакторов связей, объектов данных и источников данных. Приложение, которое компонуется в данном учебнике показывает немного более комплексное и творческое использование редакторов связей. На данной диаграмме четко не выражены редакторы связей, объекты данных и источники данных примера приложения.

Рис. 1. На этой диаграмме показан пример взаимодействия между визуальными компонентами, редакторами связей, объектами данных и источниками данныхНа этой диаграмме показано взаимодействие между визуальными компонентами, редакторами связей, объектами данных и источниками данных

На рисунке 1 каждому визуальному компоненту соответствует свой собственный редактор связей, связывающий его с объектом данных или с источником данных, если это кнопка. Редакторы связей для текстовых полей, связывают поле с отдельным свойством объекта данных. Строчный объект данных, также как и объект данных на данной диаграмме получают данные из непосредственных вызовов службы источника данных. Объект данных для текстовых полей использует значение ключа из выбранной строки таблицы в качестве аргумента при вызове службы Service2, которая возвращает полную запись, предположительно включающую более подробную информацию о выбранной строке таблицы. Эта полная запись, в свою очередь, используется в качестве аргумента для редактора связей действия кнопок при вызове службы Service3, которая, как метод, может обновить значения, введенные в поля. Более подробная информация об объектах данных, редакторах связей данных и источниках данных приведена в ссылках, указанных выше.

Создание Proxy Java Web-службы в проекте с помощью поставляемого файла WSDL

Для работы с Web-службой, работающей на сервере, приложению на Java требуется proxy Java, либо клиент для взаимодействия с ним. Файл WSDL позволяет создавать proxy Java в проекте Java с помощью мастера клиента Web-службы. Проект MyDirectory содержит файл EmployeeDirectory.wsdl, который используется для создания этого proxy. После создания proxy Java можно создать источник данных, представляющий Web-службу, и начать связывание визуальных компонентов.

Важное замечание: В файле WSDL, используемом в этом упражнении, подразумевается, что Web-служба развернута в локальной установке WebSphere Application Server и для локального хоста используется порт по умолчанию (http://localhost:9080). Если файл EAR был развернут иначе, то перед тем как продолжать работу, необходимо соответствующим образом отредактировать файл WSDL.

Для того чтобы создать proxy Java Web-службы в проекте:

  1. В главном меню выберите Файл > Создать > Другой и выберите мастер Web-службы > Клиент Web-службы. Если категория Web-службы не отображается, выберите Показать все мастеры.
  2. С помощью мастера задайте параметры клиента Web-службы:
    1. В поле Определение службы укажите файл WSDL, поставляемый вместе с проектом MyDirectory: /MyDirectory/EmployeeDirectory.wsdl
    2. В поле Тип клиента выберите Proxy Java.
    3. Переместите ползунок в положение Развернуть клиента.
    4. Убедитесь, что для применяемого сервера правильным образом задана среда выполнения Web-службы и сервер. Тестирование этого учебника выполнялось для WebSphere v6.0 и WebSphere v6.1 со средой выполнения IBM WebSphere JAX-RPC.
    5. Убедитесь, что проект MyDirectory выбран для вывода клиента Proxy Java.

    Мастер клиента Web-службы

  3. Нажмите кнопку Готово. Мастер клиента Web-службы создает Proxy Java в новом пакете (directory.service) проекта.

Связывание таблицы employeesTable со строковым объектом данных, возвращаемым Web-службой

Поскольку таблица employeesTable - это первый визуальный компонент, который вы связываете в этом приложении, нужно создать источник данных, который указывает на тот же proxy Web-службы, который только что был добавлен в проект. При связывании других визуальных компонентов в следующих упражнениях этот источник данных будет использован повторно. В этом шаге добавляется источник данных Web-службы и объект данных lightEmployeeRecordRows.

Для связывания таблицы сотрудников:
  1. В панели объектов JavaBean или в панели эскиза выберите employeesTable. (Убедитесь, что вы не выбрали ее родитель - JScrollPane.) В верхней части таблицы employeesTable в области эскиза появится небольшая надпись Связать.

    Вкладка Связать для JTable на графическом холсте

  2. Щелкните на вкладке Связать в employeesTable. Кроме того, можно щелкнуть правой кнопкой мыши на employeesTable и выбрать Свойства связывания.
  3. Поскольку в приложении нет объектов данных, нужно добавить новый. Выберите Создать объект Источник данных.
  4. В поле Исходный тип выберите Web-служба.
  5. Поскольку источник данных Web-службы еще не добавлен в приложение, его необходимо добавить сейчас. Нажмите кнопку ... рядом с полем Источник данных . Откроется окно Добавить источник данных Web-службы, которое попытается найти доступные клиенты или proxy Web-служб в проекте.
  6. Выберите Web-службу EmployeeDirectory и нажмите кнопку Готово. Новый источник данных будет добавлен в файл DirectoryApp.java.

    Окно Добавить источник данных Web-службы

  7. В окне Создать объект данных источника данных выберите getLightEmployeeRecords() в поле исходной службы и примите значение имени по умолчанию для нового объекта данных: lightEmployeeRecordRows. Для этого служебного метода параметры не нужны.Нажмите кнопку OK. Новый объект данных будет создан и отобразится в произвольной области панели эскиза.

    Окно создания объекта Источник данных

    Совет: Поскольку вы связываете таблицу, в окне Создать объект данных источника данных отображаются только те службы, которые возвращают строковые объекты данных. В этом случае метод getLightEmployeeRecords() - это единственная доступная служба, возвращающая массив объектов.
  8. В окне Привязки данных таблицы выберите объект данных lightEmployeeRecordRows.
  9. Теперь нужно выбрать свойства объекта данных lightEmployeeRecordRows, которые должны отображаться в employeesTable:

    Окно Привязки данных таблицы

    1. Нажмите кнопкуКнопка с двойной стрелкой с двойной стрелкой для добавления всех свойств объекта в список Столбцы таблицы.
    2. С помощью стрелок вверх и вниз расположите столбцы в следующем порядке сверху вниз: lastName, firstName, email, employeeID
    3. Переименуйте заголовки столбцов: Фамилия, Имя, Электронная почта, ИД сотрудника
      Совет: После того как вы закончили связывание таблицы, вы в любой момент можете вернуться к свойствам связывания, переименовать и изменить порядок столбцов.
    4. Нажмите кнопку OK.
Теперь таблица employeesTable связана с объектом данных lightEmployeeRecordRows с помощью JRowTableBinder. Если щелкнуть на объекте данных lightEmployeeRecordRows в произвольной области, визуальный редактор отобразит линию от объекта данных к таблице. На этой линии редактор связей JRowTableBinder будет представлен значком Значок редактора связей таблицы. Еще одна линия обозначает, что объект данных использует в качестве источника данных webServiceDataSource.

Вид линий редактора связей для JTable

Полученные знания и навыки

Отметьте изменения в проекте и приложении. В этом уроке вы добавляли источник данных Web-службы, строковой объект данных, а также редактор связей, связывающий таблицу employeesTable со строковым объектом данных.

Проверьте в новом пакете (jve.generated), созданном в проекте, наличие всех классов редактора связей, созданных визуальным редактором для Java. Кроме того, обратите внимание на пакет (directory.service), в котором находится proxy Java для Web-службы. Опишите пройденное в этом уроке и подведите итог.

Пакеты в проекте MyDirectory

Теперь при запуске приложения My Company Directory Web-служба заполняет таблицу существующими записями о сотрудниках.

< Назад | Далее >