Создание входных сеансовых объектов Javabean WebSphere Optimized Local Adapters

Входящие объекты Java WebSphere Optimized Local Adapters (WebSphere Optimized Local Adapters) можно вызывать из внешних приложений на основе CICS, IMS и UNIX, а также пакетных служб. В этом разделе приведены инструкции по созданию целевого объекта Java WebSphere Optimized Local Adapters, отвечающего за настройку объекта, преобразующего содержимое переданной байтовой области в существующую книгу COBOL.

Прежде чем начать

Важное замечание: Объекты JavaBean J2C формально поддерживаются и протестированы на серверах WebSphere Application Server. Использование в других средах Java™ допустимо, однако всестороннее тестирование не проводилось. Если существуют неполадки со сгенерированным исходным кодом и они могут быть изолированы как таковые в среде WebSphere Application Server, то они будут поддерживаться.

Об этой задаче

Входные объекты Javabean WebSphere Optimized Local Adapter можно вызывать из внешних приложений на основе CICS, IMS и UNIX System Services, а также пакетных служб. Такие объекты Javabean можно вызывать из всех указанных сред. Кроме того, объекты Javabean можно вызывать с помощью стандартных методов удаленного вызова Java, таких как RMI для IIOP. Уникальная особенность объектов Javabean WebSphere Optimized Local Adapters, позволяющая повысить эффективность выполнения среды WAS z/OS при вызове из внешних адресных пространств, заключается в применении реализации домашних интерфейсов com.ibm.websphere.ola.ExecuteHome и com.ibm.websphere.ola.Execute. Обязательно использовать метод execute(), который принимает входной байтовый массив и возвращает байтовый массив в качестве ответа.

С помощью рабочей среды создайте целевой объект Javabean WebSphere Optimized Local Adapters. Рабочая среда создает целевой объект Javabean в формате Java 3.1. Созданный исходный код содержит аннотацию @RemoteHome(com.ibm.websphere.ola.ExecuteHome.class) над именем класса Java. Кроме того, рабочая среда создает имя Java с помощью аннотации @Stateless(mappedName="<Java JNDI name>"). Вызывающее приложение в среде CICS, IMS или пакетной среде передает имя домашнего интерфейса Java в качестве имени службы WebSphere Optimized Local Adapters в API вызова или отправки запросов WebSphere Optimized Local Adapters.

Кроме того, с помощью рабочей среды можно создать целевой объект Javabean WebSphere Optimized Local Adapters и вспомогательные классы, предназначенные для работы с передаваемым и возвращаемым байтовыми массивами. В качестве входных данных в ходе создания объекта Javabean WebSphere Optimized Local Adapters можно использовать книгу COBOL, структуру PL/I или структуру C. Рабочая среда создаст код объекта, предоставляющего простой доступ к различным частям книги или структуры.

Процедура

  1. Выберите Файл > Создать > Другое > J2C.
  2. Выберите WebSphere Optimized Local Adapter (IBM:2) и нажмите кнопку Далее.
  3. На странице Импорт коннектора в поле Проект коннектора примите значение по умолчанию ola; в поле Целевой сервер выберите требуемую версию WebSphere Application Server и нажмите кнопку Далее.
  4. На странице Стиль адаптера выберите Входящий и нажмите Далее.
  5. На странице Свойства соединения введите имя JNDI целевого объекта Javabean. Это имя применяется в аннотации @Stateless(mappedName="#Java JNDI name>"). Нажмите кнопку Далее.
  6. На странице Свойства вывода J2C Javabean введите имя проекта Java и нажмите кнопку Создать.
    1. На странице Проект Java в поле Имя отображается имя, указанное для проекта на странице Создать J2C Javabean. Проверьте правильность имени. Если имя проекта не показано, введите его в поле Имя.
    2. В поле Имя введите имя нового проекта Java. Для изменения значения по умолчанию, указанного в поле Расположение проекта, нажмите кнопку Обзор и выберите новое расположение.
    3. В поле Целевая среда выполнения выберите версию WebSphere Application Server, в которой требуется развернуть файлы. Выбранное значение влияет на параметры компиляции и выполнения за счет изменения записей путей к классам проекта.
      Прим.: Если ввести новое имя проекта EAR, то проект будет создан в расположении по умолчанию с наименьшей совместимой версией Java EE в соответствии с версией создаваемого проекта. При необходимости с помощью мастера Создать проект приложения J2EE можно указать другую версию или другое расположение приложения J2EE.
    4. Примите опцию Версия модуля Java по умолчанию или выберите другую версию из списка. В случае создания входящих приложений J2C выберите Java 3.0.
      Важное замечание: Если выбрано значение Java 3.0, то мастер Java 3.0 по умолчанию создает локальный интерфейс. При необходимости можно вручную создать удаленный интерфейс, добавив аннотацию @Remote(class= interface.java) в объект J2C.
    5. В поле Конфигурация примите конфигурацию по умолчанию или нажмите кнопку Изменить, чтобы изменить фасеты для своего проекта.
    6. Для добавления проекта Java в файл EAR выберите Добавить в EAR.
    7. Выберите целевой EAR для добавления модуля Java или введите имя в поле Имя проекта EAR и нажмите кнопку Далее.
    8. На странице Модуль Java в поле Исходная папка оставьте значение по умолчанию, ejbModule, или введите другое имя исходной папки для проекта Java, и нажмите кнопку Далее.
    9. На странице Настроить параметры модуля Java выполните следующие действия:
      1. Для сохранения классов интерфейса клиента для объектов EJB в отдельном файле клиента JAR Java включите переключатель Создать модуль JAR клиента Java для хранения клиентских интерфейсов и классов. Полученный файл JAR клиента Java добавляется в приложение J2EE в качестве вспомогательного файла JAR проекта.
      2. В поле Имя оставьте значение по умолчанию модуля клиента JAR или введите другое имя.
      3. В поле URI клиента JAR оставьте значение по умолчанию имени файла клиента JAR или введите другое имя.
    10. Нажмите Готово.
  7. На странице Свойства вывода J2C JavaBean выполните следующие действия:
    1. В поле Имя проекта Java проверьте правильность имени проекта.
    2. В поле Имя пакета введите имя пакета.
    3. В поле Имя сеансового объекта Java без сохранения состояния.
    Нажмите кнопку Далее.
  8. На странице Методы Java нажмите кнопку Добавить... для создания метода Java.
  9. На странице Методы Java выполните следующие действия:
    1. В поле Тип ввода нажмите кнопку Обзор для выбора входного объекта или создайте его с помощью кнопки Создать.
      1. На странице Импорт данных в поле Выбор преобразования выберите значение COBOL в Java.
      2. В поле Файл COBOL нажмите кнопку Обзор для выбора собственного файла COBOL и нажмите кнопку Далее.
      3. На странице Импорт в поле Платформа выберите z/OS, в поле Кодовая страница выберите IBM-1047, а в поле Структуры данных выберите структуру данных и нажмите кнопку Далее.
    2. На странице Сохранение свойств проверьте значения для вспомогательного класса и нажмите кнопку Готово.
  10. Нажмите кнопку Готово два раза. Вместе со вспомогательным классом создается целевой входящий сеансовый объект Javabean WebSphere Optimized Local Adapters, позволяющий реализовать доступ к переданному байтовому массиву.

Результаты

Пример класса Java
Ниже приведен пример класса Java WebSphere Optimized Local Adapter с именем CustomerGet и именем NDI CustomerGetDetails, созданного с помощью RAD. Он содержит вспомогательный класс CUSTOMER, созданный на основе книги COBOL с преобразованием CUSTOMER уровня 01:
      package com.ibm.rad.ola.test;
      import javax.annotation.Generated;
      import javax.ejb.RemoteHome;
      import javax.ejb.Stateless;
      import com.ibm.xmlns.prod.websphere.j2ca.sap.sappeaddress1139792376.SapPeAddress;
      import com.ibm.xmlns.prod.websphere.j2ca.sap.sapreturn468436650.SapReturn;
      
      @Generated(comments = "Этот код, за исключением тела бизнес-метода, не следует изменять напрямую. Для изменения аннотации перейдите на панель Аннотация. Для повторного создания необходимо заново запустить мастера объекта J2C. Сохраните реализации бизнес-методов перед повторным созданием.", date = "Tuesday, November 5, 2013 6:55:10 PM EST", value = { "Этот код создан генератором кода Rational J2EE Connector Tools."})
      @Stateless(mappedName = "CustomerGetDetails")
      @RemoteHome(com.ibm.websphere.ola.ExecuteHome.class)
      public class CustomerGet {
      	public CustomerGet() {
      	}
      
      	public byte[] execute(byte[] theBytes) {
      		com.ibm.rad.ola.test.CUSTOMER input = new com.ibm.rad.ola.test.CUSTOMER();
      		input.setBytes(theBytes);
      		com.ibm.rad.ola.test.CUSTOMER output = execute(input);
      		return (output.getBytes());
      	}
      
      	public com.ibm.rad.ola.test.CUSTOMER execute(
      			com.ibm.rad.ola.test.CUSTOMER input) {
      		com.ibm.rad.ola.test.CUSTOMER output = new com.ibm.rad.ola.test.CUSTOMER();

      		// TODO - Здесь необходимо реализовать бизнес-логику.

      		return (output);
	}
      }

Вместо комментария // TODO следует добавить код реализации. Рабочая область создает код, который создает экземпляр класса CUSTOMER и загружает в него содержимое входного байтового массива. Это означает, что с помощью методов get, связанных с классом CUSTOMER, можно извлекать фрагменты входного байтового массива. За преобразование кодовой страницы отвечают методы get.

Внешнее приложение должно указать имя службы WebSphere Optimized Local Adapter CustomerGetDetails для вызова этого объекта Java с помощью API вызова WebSphere Optimized Local Adapter (BBOA1INV) или API отправки запроса (BBOA1SRQ).


Комментарии