Построение приложения для демонстрации интеграции между WESB и WSRR V7

Эта статья будет полезна разработчикам, начинающим работать с WebSphere Enterprise Service Bus и WebSphere Service Registry and Repository. В ней описано построение с помощью WID простого решения, демонстрирующего интеграцию между упомянутыми выше продуктами.

Бенджамин Йи, технический специалист по решениям WebSphere, IBM

Benjamin YeeБен Йи работает в группе WebSphere Services лаборатории Australia Development Laboratory и оказывает разнообразным заказчикам услуги внедрения на базе продуктов семейства WebSphere, в первую очередь WebSphere Process Server, WebSphere Enterprise Service Bus и WebSphere Application Server.



31.10.2012

Введение

Эта статья знакомит разработчиков J2EE с процедурой построения простого решения, демонстрирующего интеграцию между WebSphere Enterprise Service Bus V7 (далее сервисная шина) и WebSphere Service Registry and Repository V7 (далее сервисный реестр). В качестве средства разработки будет использован WebSphere Integration Developer V7 (далее Integration Developer).

Сервисный реестр представляет собой центральное хранилище, используемое для управления повторно используемыми сервисными документами, включая документы на языке описания Web-сервисов (WSDL), языке определения компонентов сервисов (SCDL), расширяемом языке разметки (XML), а также языке определения схем XML (XSD). Эти сервисные документы могут использоваться в качестве строительных блоков для разработки составных приложений, которые могут развертываться в рабочей среде сервисной шины.

В качестве корпоративной сервисной шины будет использоваться сервисная шина WebSphere Enterprise Service Bus, представляющая собой среду исполнения, опирающуюся на WebSphere Application Server (называемый далее WAS). Посреднический уровень сервисной шины используется для выполнения посреднических потоков, состоящих из примитивов-посредников, которые предлагают готовые функции, упрощающие быстрое создание решений интеграции. Одним из таких примитивов-посредников является примитив Endpoint Lookup (Поиск конечной точки), который будет использован для обращения к сервисному реестру из посреднического потока.

В общих чертах, для создания этого решения мы сначала создадим внутренний сервис, расположенный на сервисной шине, а затем определим посреднический поток, выполняющий поиск в сервисном реестре. Этот посреднический поток будет работать в той же среде исполнения сервисной шины, что и внутренний сервис. И в заключение для проверки сценария интеграции мы создадим клиент Web-сервиса на базе Java API for XML Web Services (JAX-WS) и JavaServer Page (JSP).

Предварительные условия

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

  • Необходим Integration Developer, установленный в среде Windows.
  • Наличие WebSphere Enterprise Service Bus, установленной на одиночном сервере или на кластере серверов; соответствующие серверы должны быть запущены.
  • Наличие WebSphere Service Registry and Repository, установленного (локально по отношению к сервисной шине) на одиночном сервере или на кластере серверов; соответствующие серверы должны быть запущены.
  • Должно быть настроено определение сервисного реестра и успешно установлено соединение.
  • Должен быть установлен (локально по отношению к сервисной шине) и настроен IBM HTTP Server V7 (называемый далее IHS).

Создание демонстрационного сервиса

Мы начнем с создания демонстрационного внутреннего сервиса, реализованного на Java. Этот сервис будет возвращать имя сервера приложений, на котором сервис исполняется. В качестве профиля сервера приложений в сценарии будет использоваться профиль сервисной шины.

  1. Запустите Integration Developer, выбрав Пуск > Программы > IBM WebSphere Integration Developer > IBM WebSphere Integration Developer V7.0 > WebSphere Integration Developer V7.0.
  2. В рабочем пространстве Integration Developer выберите File > New > Integration Solution (Файл > Создать > Решение интеграции).
  3. В показанном на рисунке 1 диалоговом окне введите IntegrationSolution в поле Integration solution name (Имя решения интеграции) и щелкните Next (Далее).
Рисунок 1. Диалоговое окно создания решения интеграции
New Integration Solution dialog
  1. В следующем диалоговом окне отметьте все три проекта со стандартными именами, как показано на рисунке 2, и, щелкнув на кнопке Finish (Готово), завершите работу мастера.
Рисунок 2. Диалоговое окно добавления проектов
Add projects dialog
  1. Убедитесь, что все три проекта появились в списке, как показано на рисунке 3.
Рисунок 3. Проекты перечислены в окне Business Integration (Бизнес-интеграция)
Projects listed in Business Integration view
  1. Разверните ветвь IntegrationSolution_Library в окне Business Integration (Бизнес-интеграция), щелкните правой кнопкой на пункте Interfaces (Интерфейсы) и выберите в контекстном меню пункт New > Interface (Создать > Интерфейс).
Рисунок 4. Запуск мастера интерфейса
Launch interface wizard
  1. Введите в поле имени ServiceInterface и щелкните Finish, чтобы завершить работу мастера.
Рисунок 5. Диалоговое окно создания интерфейса
Create an Interface dialog
  1. Интерфейс запустится в Редакторе интерфейса, как показано на рисунке 6.
Рисунок 6. Редактор интерфейса
Interface Editor
  1. Щелкните на значке Add Request Response Operation (Добавить операцию запрос-ответ) и назовите эту операцию getServerResponse, как показано на рисунке 7.
Рисунок 7. Добавление операции запрос-ответ
Add Request Response Operation
  1. Щелкнув на File > Save (Файл > Сохранить), сохраните внесенные изменения.
  2. Разверните ветвь IntegrationSolution_BackendModule (в списке Проектов окна Бизнес-интеграции) и дважды щелкните на Assembly Diagram (Схема сборки), чтобы запустить Редактор сборки.
Рисунок 8. Схема сборки IntegrationSolution_BackendModule
Assembly Diagram of IntegrationSolution_BackendModule
  1. Вставьте в пустое поле компонент Java (в папку Components (Компоненты) в списке Palette (Палитра)) и назовите его BackendComponent.
Рисунок 9. Компонент Java
Java component
  1. Выберите BackendComponent и щелкните на значке Add Interface (Добавить интерфейс) во всплывающем меню, как показано на рисунке 10.
Рисунок 10. Добавление интерфейса
Add Interface
  1. В диалоговом окне Add Interface (Добавление интерфейса) выберите ServiceInterface и щелкните OK.
Рисунок 11. Выбор ServiceInterface
Select ServiceInterface
  1. Убедитесь, что интерфейс успешно добавлен.
Рисунок 12. Проверка интерфейса
Verify Interface
  1. Щелкните правой кнопкой на BackendComponent и выберите в контекстном меню пункт Generate Implementation (Создать реализацию).
  2. На запрос имени пакета введите com.ibm.au.samples и щелкните OK.
  3. В Редакторе Java отобразится класс BackendComponentImpl1.java, как показано на рисунке 13.
Рисунок 13. Класс BackendComponentImpl1.java
BackendComponentImpl1.java
  1. Замените тело метода getServerResponse фрагментом кода, показанным на рисунке 14.
Рисунок 14. Метод getServerResponse
getServerResponse method
  1. Щелкнув на File > Save All (Файл > Сохранить все), сохраните внесенные изменения.
  2. Переключитесь на схему сборки IntegrationSolution_BackendModule.
  3. Щелкните правой кнопкой на BackendComponent и выберите в контекстном меню пункт Generate Export > Web Service Binding (Создать экспорт > Привязка Web-сервиса).
  4. Выберите транспортный протокол SOAP1.1/HTTP и щелкните Finish, чтобы завершить работу мастера.
Рисунок 15. Выбор транспортного протокола
Select transport protocol
  1. Убедитесь, что экспорт привязки Web-сервиса выполнен успешно.
Рисунок 16. Экспорт привязки Web-сервиса для BackendComponent
Web Service Binding Export for BackendComponent
  1. Разверните ветвь IntegrationSolution_Library > Web Service Ports (в списке Проектов окна Бизнес-интеграции) и, дважды щелкнув на ServiceInterfaceExport1_ServiceInterfaceHttpPort, откройте упомянутый файл в Редакторе WSDL.
  2. Выберите ServiceInterfaceExport1_ServiceInterfaceHttpPort и введите в поле Address (Адрес) http://<имя_хоста>:<порт>/ IntegrationSolution_BackendModuleWeb/sca/ServiceInterfaceExport1 (Параметр <имя_хоста> представляет собой полное доменное имя машины, на которой установлена сервисная шина, а <порт> представляет собой значение, указанное в поле Servers > Server Types > WebSphere application servers > [Service Bus application server] > Ports > WC_defaulthost (Серверы > Типы серверов > Серверы приложений WebSphere > [Сервер приложений сервисной шины] > Порты > Стандартный хост WC) консоли Integrated Solutions Console, где [Service Bus application server] представляет собой стандартный сервер приложений профиля сервисной шины.)
Рисунок 17. Изменение адреса порта для экспорта BackendModule
Change port address of BackendModule export
  1. Щелкнув на File > Save All, сохраните внесенные изменения.
  2. Щелкнув на File > Export (Файл > Экспорт), запустите мастера экспорта.
  3. В появившемся диалоговом окне выберите Integration modules and libraries (Модули и библиотеки интеграции) в папке Business Integration и щелкните Next.
Рисунок 18. Экспорт модулей и библиотек интеграции
Export Integration modules and libraries
  1. В открывшемся диалоговом окне выберите Files for server deployment (Файлы для развертывания на сервере), проект IntegrationSolution_BackendModule и щелкните Next.
Рисунок 19. Выбор проекта
Select Project
  1. Введите имя архивного файла, например, IntegrationSolution_BackendModule.ear, укажите Target directory (Целевую директорию) для экспорта проекта и, щелкнув Finish, завершите работу мастера.
Рисунок 20. Указание имени архивного файла
Specify archive file name
  1. Для экспорта файлов WSDL, которые будут выгружаться в сервисный реестр, щелкните на File > Export.
  2. В открывшемся диалоговом окне выберите WSDL and XSD (WSDL и XSD) в папке Business Integration и щелкните Next to proceed.
Рисунок 21. Экспорт WSDL и XSD
Export WSDL and XSD
  1. В показанном на рисунке 22 диалоговом окне выполните следующие операции:
    • Выберите проект IntegrationSolution_Library.
    • Выберите файлы WSDL IntegrationSolution_BackendModule_ServiceInterfaceExport1.wsdl и ServiceInterface.wsdl WSDL.
    • Укажите Target directory для экспорта файлов WSDL.
    • Щелкните Finish.
Рисунок 22. Выбор файлов WSDL
Select WSDL files

Выгрузка сервиса в сервисный реестр

В этом разделе мы опишем процедуру выгрузки вновь созданного сервиса в сервисный реестр. Затем мы добавим свойства в упомянутый сервис и обратимся к этому сервису, указав свойства в строке запроса.

  1. Войдите в консоль сервисного реестра по адресу http://<имя_хоста>:<порт>/ServiceRegistry. (Параметр <имя_хоста> представляет собой полное доменное имя машины, на которой установлена сервисная шина, а <порт> представляет собой значение, указанное в поле Servers > Server Types > WebSphere application servers > [Service Registry application server] > Ports > WC_defaulthost консоли Integrated Solutions Console, где [Service Registry application server] представляет собой стандартный сервер приложений профиля сервисной шины.)
  2. Щелкните на Actions > Load Documents(Операции > Загрузка документов)
Рисунок 23. Загрузка сервисного документа
Load service document
  1. Выберите в локальной файловой системе файл IntegrationSolution_BackendModule_ServiceInterfaceExport1.wsdl и проделайте следующее:
    • Выберите тип документа WSDL.
    • Введите описание документа ServiceBackend.
    • Введите версию документа 1.0.
    • Щелкните OK.
Рисунок 24. Выбор внутреннего сервиса WSDL
Select backend service WSDL
  1. На следующем экране щелкните Add (Добавить).
Рисунок 25. Добавление сервисного интерфейса
Add service interface
  1. Выберите в локальной файловой системе файл ServiceInterface.wsdl и проделайте следующее:
    • Выберите тип документа WSDL.
    • Введите описание документа ServiceInterface.
    • Введите версию документа 1.0.
    • Щелкните OK.
Рисунок 26. Выбор сервисного интерфейса WSDL
Select service interface WSDL
  1. На следующем экране щелкните Finish и завершите работу мастера.
Рисунок 27. Загрузка сервисных документов
Load service documents
  1. Убедитесь в том, что сервисные документы были успешно загружены.
Рисунок 28. Выгрузка сервисных документов завершена
Upload of service documents complete
  1. Введите в показанное на рисунке 29 поле поиска ServiceInterfaceExport1_ServiceInterfaceHttpPort и щелкните на значке поиска.
Рисунок 29. Поиск документов
Search documents
  1. Щелкните на ссылке ServiceInterfaceExport1_ServiceInterfaceHttpPort типа объекта Port (Порт).
Рисунок 30. Результаты запроса
Query results
  1. Разверните раздел Additional Properties (Дополнительные свойства) и щелкните на Edit Properties (Редактировать свойства).
Рисунок 31. Редактирование свойств документа
Edit document properties
  1. Щелкните на Add Property (Добавить свойство).
Рисунок 32. Добавление свойства
Add Property
  1. Введите sampleProperty в поле Custom Property Name (Имя специального свойства) и щелкните на Add.
Рисунок 33. Добавление имени специального свойства
Add custom property name
  1. Введите в поле значения специального свойства abc123def и щелкните OK.
Рисунок 34. Добавление значения специального свойства
Add custom property value
  1. Разверните раздел Additional Properties и убедитесь в успешном добавлении специального свойства.
Рисунок 35. Проверка специального свойства
Verify custom property
  1. Щелкните на Actions > Query Wizard (Операции > Мастер запросов)..
Рисунок 36. Запуск мастера запросов
Launch query wizard
  1. Выберите в выпадающем списке типов порты WSDL и щелкните Next.
Рисунок 37. Выбор типа объекта
Select entity type
  1. На странице данных мастера запросов укажите перечисленные ниже значения и щелкните Next.
    • Введите sampleProperty в поле Property name (Имя свойства).
    • Введите abc123def в поле Property value (Значение свойства)
Рисунок 38. Ввод имени и значения свойства
Enter property name and value
  1. Щелкнув Finish на странице сводной информации мастера запросов, выполните запрос.
Рисунок 39. Сводная информация запроса
Search summary
  1. Щелкните на ссылке ServiceInterfaceExport1_ServiceInterfaceHttpPort.
Рисунок 40. Результаты запроса
Query results
  1. Убедитесь в существовании специального свойства sampleProperty.
Рисунок 41. Дополнительные свойства
Additional Properties

Определение посреднического потока

В этом разделе мы опишем процедуру определения посреднического потока, в котором будут использованы примитивы-посредники Endpoint Lookup (Поиск конечной точки) и Trace (Трассировка). Первый примитив-посредник будет выполнять поиск в стандартном сервисном реестре (который должен быть уже определен в сервисной шине и успешно подключен). Второй примитив-посредник облегчает диагностику в случае возникновения ошибки.

  1. Находясь в Integration Developer, дважды щелкните на Assembly Diagram в проекте IntegrationSolution_MediationModule, чтобы запустить Редактор сборки, и дайте компоненту Mediation Flow (посреднический поток) имя SampleMediation. (Обратите внимание, что при создании Модуля-посредника возникает стандартный компонент Mediation Flow.)
Рисунок 42. Модуль-посредник
Mediation Module
  1. Выберите SampleMediation и щелкните во всплывающем меню на значке Add Interface, как показано на рисунке 43.
Рисунок 43. Добавление интерфейса
Add Interface
  1. В диалоговом окне Add Interface выберите ServiceInterface и щелкните OK.
  2. Выберите SampleMediation и во всплывающем меню щелкните на значке Add Reference (Добавить ссылку), как показано на рисунке 44.
Рисунок 44. Добавление ссылки
Add Reference
  1. В диалоговом окне Add Reference (Добавление ссылки) выберите ServiceInterface и щелкните OK.
  2. Щелкните правой кнопкой на SampleMediation и выберите в контекстном меню пункт Generate Implementation (Создать реализацию).
  3. В диалоговом окне Generate Implementation (Создание реализации) выберите папку IntegrationSolution_MediationModule и щелкните OK.
  4. В Редакторе посреднических потоков откроется компонент SampleMediation, как показано на рисунке 45.
Рисунок 45. Редактор посреднических потоков
Mediation Flow Editor
  1. Щелкните в Редакторе посреднических потоков на ссылке getServerResponse и затем во всплывающем меню на ссылке Service Integration (Интеграция сервиса), как показано на рисунке 46.
Рисунок 46. Создание посреднического потока
Create mediation flow
  1. Щелкнув на Add в диалоговом окне Integrate Services, выберите ссылку ServiceInterfacePartner, оставьте отмеченной опцию Create a separate response flow... (Создать отдельный поток ответа…) и, щелкнув OK, создайте посреднический поток.
Рисунок 47. Создание посреднического потока
Create mediation flow
  1. Убедитесь, что в Редакторе посреднических потоков появились вкладки Request (Запрос) и Response (Ответ).
Рисунок 48. Создание потоков запроса и ответа
Request and response flows generated
  1. Добавьте 3 примитива-посредника Trace (в папке Tracing (Трассировка) в Palette) в поток Request и назовите их BeforeLookup (до поиска), AfterLookup (после поиска) и NoMatchFound (совпадений не найдено), как показано на рисунке 49.
Рисунок 49. Добавление в поток запроса примитива-посредника Trace
Add Trace mediation primitives to Request flow
  1. Добавьте примитив-посредник Endpoint Lookup (Поиск конечной точки) (в папке Routing (маршрутизация) в Palette) и назовите его WSRREndpointLookup.
Рисунок 50. Добавление в поток запроса примитива-посредника Endpoint Lookup
Add Endpoint Lookup mediation primitive to Request flow
  1. Соедините все примитивы-посредники в потоке Request, как показано на рисунке 51.
Рисунок 51. Соединение объектов в потоке запроса
Connect terminals in Request flow
  1. Щелкните на вкладке Response в Редакторе посреднических потоков, добавьте примитив-посредник Trace и назовите его TraceResponse, как показано на рисунке 52.
Рисунок 52. Добавление в поток ответа примитива-посредника Trace
Add Trace mediation primitive to Response flow
  1. Соедините все примитивы-посредники в потоке Response, как показано на рисунке 53.
Рисунок 53. Соединение объектов в потоке ответа
Connect terminals in Response flow
  1. Вернитесь в поток Request (щелкнув на вкладке RequestРедактора промежуточных потоков), выберите BeforeLookup и добавьте префикс BeforeLookup --- в поле Message (Сообщение) (в разделе Details (Подробности) окна Properties (Свойства)).
Рисунок 54. Подробные сведения о BeforeLookup
Details of BeforeLookup
  1. Повторите шаг 17 для AfterLookup, как показано на рисунке 55.
Рисунок 55. Подробные сведения о AfterLookup
Details of AfterLookup
  1. Выберите NoMatchFound и обновите следующие поля в разделе Details окна Properties.
    • Выберите File (Файл) в выпадающем списке Destination (Точка назначения).
    • Укажите абсолютный путь к файлу, например, C:\temp\dWSampleNoMatchFound.log
    • Добавьте префикс NoMatchFound --- в поле Message.
Рисунок 56. Подробные сведения о NoMatchFound
Details of NoMatchFound
  1. Выберите WSRREndpointLookup и убедитесь, что поля в разделе Details окна Properties выглядят так, как показано на рисунке 57.
Рисунок 57. Подробные сведения о WSRREndpointLookup
Details of WSRREndpointLookup
  1. Выберите WSRREndpointLookup, щелкните на Advanced (Дополнительно) в окне Properties и щелкните на Add (Добавить).
Рисунок 58. Дополнительные свойства WSRREndpointLookup
Advanced properties of WSRREndpointLookup
  1. В показанном на рисунке 59 диалоговом окне Add/Edit properties (Добавление/Редактирование свойств) введите sampleProperty в поле Name (Имя), /body/getServerResponse/input1 в поле Value (Значение) и щелкните Finish.
Рисунок 59. Добавление свойства пользователя
Add user property
  1. Убедитесь, что свойство пользователя, добавленное на шаге 22, появилось в разделе Advanced окна Properties.
Рисунок 60. Проверка добавления свойства пользователя
Verify user property added
  1. Запустите Редактор сборки, дважды щелкнув на Assembly Diagram в проекте IntegrationSolution_MediationModule в окне Business Integration.
  2. Щелкните правой кнопкой на SampleMediation в Редакторе сборки и выберите в контекстном меню пункт Generate Export > Web Service Binding.
  3. В диалоговом окне Select a Transport Protocol (Выбор транспортного протокола) выберите SOAP1.1/HTTP и, щелкнув Finish, создайте экспорт.
  4. Убедитесь, что экспорт привязки Web-сервиса выполнен успешно.
Рисунок 61. Экспорт привязки Web-сервиса для SampleMediation
Web Service Binding Export for SampleMediation
  1. Дважды щелкните на порте Web-сервиса ServiceInterfaceExport1_ServiceInterfaceHttpPort проекта IntegrationSolution_Library в окне Business Integration, как показано на рисунке 62.
  2. В Редакторе WSDL выберите ServiceInterfaceExport1_ServiceInterfaceHttpPort и введите http://<имя_хоста>:<порт>/IntegrationSolution_MediationModuleWeb/sca/ServiceInterfaceExport1 в адресное поле. (Параметр <имя_хоста> представляет собой полное доменное имя машины, на которой установлена сервисная шина, а <порт> представляет собой значение, указанное в поле Servers > Server Types > WebSphere application servers > [Service Bus application server] > Ports > WC_defaulthost консоли Integrated Solutions Console, где [Service Registry application server] представляет собой стандартный сервер приложений профиля сервисной шины.)
Рисунок 62. Изменение адреса порта для экспорта SampleMediation
Change port address of SampleMediation export
  1. Щелкнув на File > Save All, сохраните внесенные изменения
  2. Для экспорта разворачиваемых объектов этого проекта щелкните на File > Export.
  3. В открывшемся диалоговом окне выберите Files for server deployment (Файлы для развертывания на сервере), проект IntegrationSolution_MediationModule и щелкните Next.
  4. В последнем диалоговом окне Мастера экспорта укажите Archive File Name (Имя архивного файла), например, IntegrationSolution_MediationModule.ear, выберите Target directory (Целевую директорию) для экспорта проекта и щелкните Finish, чтобы завершить экспорт.

Создание клиента JAX-WS

В этом разделе мы опишем процедуру создания Web-приложения с JSP и классами, созданными мастером создания клиентов Web-сервиса JAX-WS. JAX-WS представляет собой модель программирования Web-сервисов, созданную на основе модели Java API for XML-based RPC (JAX-RPC), и предлагает более независимый от платформы подход к определению клиентов Web-сервиса. Это Web-приложение будет использовано для проверки интеграции сервисной шины с сервисным реестром путем вызова экспорта привязки Web-сервиса посреднического потока SampleMediation.

  1. В рабочем пространстве Integration Developer щелкните на File > New > Other (Файл > Создать > Другой).
  2. В показанном на рисунке 63 диалоговом окне выберите Enterprise Application Project (Проект корпоративного приложения) в папке Java EE и щелкните Next.
Рисунок 63. Создание проекта корпоративного приложения
Create an enterprise application project
  1. В следующем диалоговом окне введите SampleClient в поле Project name (Имя проекта), оставив остальные значения без изменения, и щелкните Next.
Рисунок 64. Свойства проекта корпоративного приложения
Properties of the enterprise application project
  1. Щелкните на New Module (Создать модуль).
Рисунок 65. Определение зависимого модуля
Define a dependent module
  1. В следующем диалоговом окне выберите Web module (Web-модуль), оставив остальные значения без изменения, и щелкните Finish.
Рисунок 66. Создание Web-модуля
Create the web module
  1. И, наконец, убедитесь, что выбран SampleClientWeb, и щелкните Finish, чтобы завершить работу мастера.
Рисунок 67. Проверка добавления Web-модуля
Verify web module added
  1. В ответ на предложение переключиться на перспективу Java EE, щелкните No (Нет).
  2. Теперь щелкните на File > New > Other и выберите Web Service Client (Клиент Web-сервиса) в папке Web Services (Web-сервисы).
  3. В следующем диалоговом окне введите /IntegrationSolution_Library/IntegrationSolution_MediationModule_ServiceInterfaceExport1.wsdl в поле Service definition (Определение сервиса) и щелкните на ссылке Server:... (Сервер:…).
Рисунок 68. Выбор определения сервиса
Select service definition
  1. Теперь выберите в качестве сервера WebSphere ESB Server v7.0, а в качестве среды исполнения Web-сервиса IBM WebSphere JAX-WS и щелкните OK.
Рисунок 69. Выбор среды исполнения Web-сервиса
Select web service runtime
  1. Щелкните на ссылке Client project:... (Проект клиента:…).
Рисунок 70. Указание проекта клиента
Specify client project
  1. В следующем диалоговом окне выберите в качестве проекта клиента SampleClientWeb и щелкните OK.
  2. Убедитесь, что конфигурация выглядит так, как показано на рисунке 71, и щелкните Next.
Рисунок 71. Проверка конфигурации
Verify configuration
  1. В последнем диалоговом окне мастера отметьте опцию Generate portable client (Создать переносимого клиента), оставив остальные значения без изменения, и щелкните Finish. (Если отмечена опция Generate portable client, локальная копия файлов WSDL сохраняется в папке <WebModule>/WebContent/WEB-INF/wsdl.)
Рисунок 72. Готовая конфигурация клиента Web-сервиса
Complete configuration of web service client
  1. Щелкнув на Window > Open Perspective > Other > Java EE (Окно > Открыть перспективу > Другое > Java EE), переключитесь на перспективу Java EE..
  2. Убедитесь, что классы Java перечислены в окне Enterprise Explorer, как показано на рисунке 73.
Рисунок 73. Классы Java в окне Enterprise Explorer
Java classes in Enterprise Explorer view
  1. Убедитесь в существовании в рабочем пространстве Integration Developer конфигурации сервера сервисной шины.
Рисунок 74. Конфигурация сервера
Server configuration
  1. Щелкните правой кнопкой на ServiceInterfaceExport1_ServiceInterfaceHttpPortProxy.java в SampleClientWeb > Java Resources > integrationsolution_library.serviceinterface.binding2 и выберите в контекстном меню пункт SampleClientWeb > Java Resources > integrationsolution_library.serviceinterface.binding2 and select Web Services > Generate JAX-WS JSPs (Web-сервисы > Создать JAX-WS JSP).
  2. В диалоговом окне Web Service Client Test (Тестирование клиента Web-сервиса) отметьте опцию Test the generated proxy (Проверить созданный прокси), введите form в поле Folder (Папка), снимите отметку с опции Run test on Server (Запустить тест на сервере), оставьте все остальные значения без изменения и щелкните Finish, чтобы завершить работу мастера.
Рисунок 75. Конфигурация клиента Web-сервиса
Web service client configuration
  1. Убедитесь, что JSP перечислены в окне Enterprise Explorer, как показано на рисунке 76.
Рисунок 76. JAX-WS JSP
JAX-WS JSPs
  1. Для экспорта разворачиваемых объектов этого проекта щелкните на File > Export.
  2. В открывшемся диалоговом окне выберите в папке Java EE файл EAR и щелкните Next.
  3. Теперь выберите SampleClient в качестве проекта EAR, укажите Destination (Место назначения) для экспорта проекта и, оставив остальные значения без изменения, щелкните Finish, чтобы завершит экспорт.

Развертывание приложений на сервисной шине

Теперь мы развернем экспортированные модули интеграции и Web-проект в среде исполнения сервисной шины через Integrated Solutions Console (Консоль решений интеграции). Web-модули всех приложений будут привязаны к серверу приложений сервисной шины и к IHS.

  1. Войдите в Integrated Solutions Console по адресу http://<имя_хоста>:<порт>/ibm/console. (Параметр <имя_хоста> представляет собой полное доменное имя машины, на которой установлена сервисная шина, а <порт> имеет стандартное значение 9060.)
  2. Перейдите в Applications > New Application > New Enterprise Application (Приложения > Создать приложение > Создать корпоративное приложение).
  3. Выберите в Local file system (Локальной файловой системе) файл IntegrationSolution_BackendModule.ear и щелкните Next.
  4. Выберите Fast Path (Быстрый путь) и щелкните Next.
  5. На следующем экране оставьте все значения без изменений и щелкните Next.
  6. Теперь привяжите IntegrationSolution_BackendModuleWeb к серверу приложений сервисной шины и Web-серверу в списке Clusters and servers (Кластеры и серверы) и щелкните Next.
Рисунок 77. Привязка модулей к серверам
Map modules to servers
  1. Проверьте данные развертывания и, щелкнув Finish, установите приложение
  2. По завершению установки щелкните на Review (Обзор).
  3. Выберите Synchronize changes with Nodes (Синхронизировать изменения с узлами) и щелкните на Save (Сохранить).
  4. Когда синхронизация закончится, щелкните OK.
  5. Перейдите в Applications > Application Types > WebSphere enterprise applications (Приложения > Типы приложений > Корпоративные приложения WebSphere), выберите IntegrationSolution_BackendModuleApp и щелкните на Start (Пуск).
  6. Повторите шаги 1 – 11 для установки и запуска следующих приложений.
    • IntegrationSolution_MediationModule.ear
    • SampleClient.ear

Тестирование приложения

На этом последнем этапе мы откроем Web-приложение SampleClientWeb в браузере. Упомянутое приложение получит входную строку из Web-формы и вернет либо имя сервера приложений сервисной шины, где работает внутренний сервис, либо нулевое значение null, если не обнаружит совпадений в сервисном реестре. Выполнив упомянутый тест, мы откроем файл SystemOut.log сервера приложений сервисной шины и убедимся в том, что примитивы-посредники Trace занесли в журнал соответствующие сообщения.

  1. Запустите Web-приложение в браузере, открыв страницу http://<имя_хоста>/SampleClientWeb/form/TestClient.jsp (Параметр <имя_хоста> представляет собой полное доменное имя машины, на которой установлен IHS. В данном случае мы не указываем порт, поскольку Web-модуль корпоративного приложения привязан к IHS.)
Рисунок 78. Web-приложение SampleClientWeb
SampleClientWeb
  1. Щелкните на ссылке getServerResponse в поле Methods (Методы), введите в поле input1 10 (или любую символьную строку, отличную от 'abc123def') и щелкните на Invoke (Вызвать).
  2. Убедитесь, что в поле Results (Результат) отобразиться значение 'null', как показано на рисунке 79.
Рисунок 79. Совпадений не найдено
No match found
  1. Откройте файл C:\temp\dWSampleNoMatchFound.log в текстовом редакторе и прочтите сообщение, занесенное примитивом-посредником Trace.
Рисунок 80. Файл dWSampleNoMatchFound.log
dWSampleNoMatchFound.log
  1. Теперь введите в поле input1 строку abc123def и щелкните на Invoke
  2. Убедитесь, что в поле Results появилось сообщение 'Server response from <Service Bus application server>(Ответ сервера <Сервер приложений сервисной шины> на входную строку abc123def), как показано на рисунке 81. (The <Service Bus application server> указывает на стандартный сервер приложений профиля сервисной шины.)
Рисунок 81. Ответ сервера
Response from server
  1. Вернитесь в консоль Integrated Solutions Console и перейдите в Troubleshooting > Logs and trace > [Service Bus application server] > JVM Logs. (Диагностика > Журналы и трассировка > [Сервер приложений сервисной шины] > Журналы JVM). ([Service Bus application server] представляет собой стандартный сервер приложений профиля сервисной шины.)
  2. Щелкните на вкладке Runtime (Среда исполнения) и затем на кнопке View (Обзор) рядом с SystemOut.log.
  3. Прочтите сообщение, занесенное в журнал примитивами-посредниками Trace, как показано на рисунке 82.
Рисунок 82. Файл SystemOut.log
SystemOut.log

Заключение

Из этой статьи вы узнали, как с помощью Integration Developer создать приложение, демонстрирующее интеграцию между сервисной шиной и сервисным реестром. Сначала вы создали демонстрационный внутренний сервис и выгрузили упомянутый сервис в сервисный реестр. Затем вы определили посреднический поток, выполняющий поиск в сервисном реестре, и создали клиента Web-сервиса JAX-WS для проверки сценария интеграции.

Благодарности

Хочу выразить благодарность своему коллеге Дэмиену Маколею (Damien McAullay) из группы сервисов WebSphere лаборатории Australia Development Laboratory за рецензирование этой статьи.

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=SOA и web-сервисы, WebSphere
ArticleID=843769
ArticleTitle=Построение приложения для демонстрации интеграции между WESB и WSRR V7
publish-date=10312012