О начале обучения |
Реализация. Создание процесса Request External Reports
10.7 Компоновка
На этом этапе после сохранения процесса у нас должно остаться только одно предупреждение – The deployment code for this process needs to be generated (нужно сгенерировать код размещения для данного процесса).
Чтобы BPEL-процесс мог выполняться на сервере, нужен код размещения. Мы можем сгенерировать код для размещения процесса в WebSphere Studio Application Developer Integration Edition после того, как исправлены все ошибки. Система WebSphere Studio Application Developer Integration Edition генерирует EAR-модуль, который включает в себя EJB-модуль, созданный по определениям бизнес-процесса. Мы можем выполнять бизнес-процесс, разместив этот EAR-модуль на сервере.
Чтобы подготовить процесс, прошедший тестирование на тестовом сервере, к размещению и использованию базы DB/2 в рабочей системе, нужно выполнить еще один дополнительный компоновочный этап (см. раздел "Компоновка для рабочего сервера"). Мы используем для хранения объектов на тестовом сервере базу Cloudscape , а в рабочей системе мы используем DB/2.
10.7.1 Компоновка бизнес-процесса
Чтобы осуществить компоновку бизнес-процесса, выполните следующие шаги:
- Убедитесь, что в бизнес-процессе отсутствуют ошибки, сохранив все рабочее пространство.
- Мы не хотим, чтобы экземпляр процесса автоматически удалялся по завершении работы, потому что мы хотим просмотреть результаты. По умолчанию экземпляр процесса по завершении работы удаляется. Чтобы изменить данное поведение, перейдите к всплывающему меню операции RequestExternalReports в верхней части потока и измените свойства сервера, как показано на рис. 10.49.
- Чтобы сгенерировать код размещения, щелкните правой кнопкой мыши по процессу RequestExternalReport s, выберите пункт меню Enterprise Services (Корпоративные службы) Generate Deploy Code (Сгенерировать код размещения). Откроется окно параметров генерации кода ( рис. 10.50).
- Выберите транспортные привязки процесса и его партнеров, где процесс будет
выполнять роль сервера:
- Оставьте JMS в качестве протокола вызова процесса.
- Для трех других интерфейсов укажите привязки SOAP/http с использованием IBM Web service, как показано на рис. 10.50.
- Для каждого из трех интерфейсов определите стиль SOAP, как показано на рис. 10.51. Файлы WSDL создавались совместимыми с WS-I и использующими интерфейс Document Literal (Документ литерал). За дополнительной информацией о совместимости SOAP и WS-I обращайтесь к книге серии Redbooks "WebSphere and .Net interoperability using Web services", SG24-6395.
- Проверьте партнеров, на которые процесс ссылается. Менять, скорее всего, ничего не нужно. Нажмите OK, чтобы начать генерацию. Это займет несколько минут. После завершения генерации вы увидите 15 сообщений, относящихся к компенсационным объектам, которые устранить нельзя, но можно игнорировать.
- Найдите EAR-модуль с именем ITSOLGIEAR (имя проекта + EAR) в представлении J2EE Hierarchy (Иерархия J2EE). Этот EAR-модуль включает в себя Web-модуль (ITSOLGIWeb) и EJB-модуль (ITSOLGIEJB).
10.7.2 Компоновка для рабочего сервера
При создании модулей для рабочего сервера мы можем упростить конфигурацию рабочего сервера, удалив ссылку на базу данных Cloudscape, которая используется в тестовой среде. Таким образом, когда EAR-файл процесса будет размещаться на рабочем сервере, этот файл будет сконфигурирован на автоматическое использование базы данных, указанной для рабочего сервера.
- Перейдите в представление J2EE Hierarchy и удалите карту и схему из ресурса Cloudscape. ( рис. 10.52).
- Экспортируйте файл ITSOLGI.ear.
10.8 Тестирование и отладка процесса
В WebSphere Studio Application Development Integration Edition предлагается тестовая серверная среда, которая содержит тот же серверный компонент, что и WebSphere Business Integration Server Foundation. Это означает, что вы можете тестировать бизнес-процессы без инсталляции и конфигурирования тестового сервера за пределами среды разработки. Также предлагаются функции для отладки, например для установки точек останова, пошагового выполнения бизнес-процессов и мониторинга данных в ходе выполнения.
С помощью этих функций вы можете находить ошибки, которые могут не проявляться в фазе разработки, и исправлять их до размещения бизнес-процесса в реальной рабочей среде.
10.8.1 Подготовка к тестированию
Для подготовки к тестированию выполните следующие шаги:
- Создайте новый тестовый сервер. Откройте представление Server Configuration (Конфигурация сервера). Его можно найти в нижней части перспективы Services (Службы) или с помощью главного меню: пункт Window (Окно) Show view (Показать представление) Server Configuration (Конфигурация сервера). Щелкните правой кнопкой мыши и выберите пункт меню New (Новый) Server and Server Configuration (Сервер и конфигурация сервера) ( рис. 10.53).
- Введите TestServer в качестве имени нового сервера и убедитесь, чтобы в поле Server Type (Тип сервера) был указан вариант Integration Test Environment (Среда для тестирования интеграции). Нажмите OK, чтобы создать новый сервер.
- Новый сервер, TestServer, будет добавлен в папку servers в представлении Server Configuration (Конфигурация сервера). Щелкните правой кнопкой мыши по серверу TestServer и выберите пункт меню Add and remove projects (Добавление и удаление проектов).
- Нажмите кнопку Add (Добавить) ( рис. 10.54), чтобы добавить созданный нами модуль ITSOLGIEAR EAR. Нажмите Finish (Готово), чтобы закрыть окно.
- Снова щелкните правой кнопкой мыши по серверу TestServer и выберите пункт меню Create tables and data sources (Создать таблицы и источники данных). Для выполнения процесса RequestExternalReports нам понадобится база данных, поскольку это длительно выполняемый процесс и необходимо сохранять в базе данных сведения об экземплярах процесса.
Проверьте сообщения, появляющиеся в окне подтверждения, и убедитесь в том, что таблица базы данных и источник данных были успешно созданы.
10.8.2 Публикация бизнес-процесса на тестовом сервере
Чтобы опубликовать тестовый сервер, выполните следующие действия. Щелкните правой кнопкой мыши по серверу TestServer и выберите пункт меню Publish (Публикация).
Весьма возможно, что публикация службы будет неудачной и будут выведено одно из следующих сообщений об ошибке (примеры 10.8 и 10.9).
Project ITSOLGIEJB deployment failed. BPEA0010E: Unexpected exception during execution. java.lang.reflect.InvocationTargetException: com.ibm.bpe.api.UnexpectedFailureException: BPEA0010E: Unexpected exception during execution. com.ibm.bpe.util.ProcessAssertionError: Assertion violation !(param- Value != null && paramValue.length() != 0) in method >>at com.ibm.bpe.staff.StaffPluginUtil.deployStaffVerb(StaffPПример 10.8. Ошибка 1 при публикации сервера TestServer
Данная ошибка вызвана отсутствием реализации роли Claim Handler. В данном сценарии можно обойти эту ошибку, указав в поле staff операции ManualSelectAssessor вариант Everybody.
Project ITSOWorkshopEJB deployment failed. BPED0203I: Validated process model 'RequestExternalReports' with findings ( 0 information, 0 warnings, 1 errors ): BPED0267E: Syntactical error found in BPEL file 'Claim/TOBE/RequestExternalReports/RequestExternalReports.bpel' (row: 223, column: 73). Detail message: cvc-complex-type.2.4.b: The content of element 'wpc:webClientSettings' is not complete. One of '("http://www.ibm.com/xmlns/prod/websphere/business-process/v5.1/":customSe tting, "http://www.ibm.com/xmlns/prod/websphere/business-process/v5.1/":jsp)' is expected. java.lang.reflect.InvocationTargetException: com.ibm.bpe.plugins.DeploymentBPELProcessValidationException: BPED0203I: Validated process model 'RequestExternalReports' with findings ( 0 information, 0 warnings, 1 errors ): BPED0267E: Syntactical error found in BPEL file 'Claim/TOBE/RequestExternalReports/RequestExternalReports.bpel' (row: 223, column: 73). Detail message: cvc-complex-type.2.4.b: The content of element 'wpc:webClientSettings' is not complete. One ofПример 10.9. Ошибка 2 при публикации сервера TestServer
Если вы встретитесь со второй ошибкой, удалите строку <wpc:webClientSettings clientType="Web Client"/> из файла RequestExternalReports.bpel.