Это правило определяет наличие веб-служб JAX-RPC, используя следующие критерии:
- Наличие файла web-services.xml
- Наличие файла weblogic-webservices.xml и файла webservices.xml в одной папке
Ручное решение
Чтобы сгенерировать веб-сервисы JAX-RPC на основе дескрипторов развертывания веб-сервисов WebLogic J2EE, необходимо вручную создать сценарий Ant с помощью определенных IBM® Ant задачи. Скрипт должен быть добавлен в корневую папку проекта, если в ней еще не существует IBM Ant -генерируемого файла. Эти задачи будут генерировать веб-сервисы JAX-RPC из дескрипторов развертывания.
Свойства правила
Вы должны указать правильные значения свойств правила, чтобы обеспечить точные результаты анализа. Эти свойства должны быть рассмотрены и настроить соответствующим образом в зависимости от контекста вашего приложения. Для этого правила предусмотрены следующие свойства:
- Имя создаваемого сценария Ant:
Указывает имя нового создаваемого сценария Ant. Имя сценария должно быть действительным именем файла. Значение не должно содержать прямых или обратных косых черт. Скрипт будет находиться в корневой папке проекта.
Значение по умолчанию: build-ibm-ws.xml
- Создать в папке:
Указывает имя папки, в которой будут храниться артефакты генерации. Значение не должно содержать прямых или обратных косых черт. Указанная папка будет находиться в корневой папке проекта.
Значение по умолчанию: ibm-ws-gen
Путь к классу Ant
Путь к классам Ant формируется исходя из конфигурации проекта Eclipse.
Необходимо убедиться в том, что в пути к классам Eclipse заданы все элементы,
необходимые для его формирования.
Службы JAX-RPC, определенные в файле web-services.xml
Исходя из набора и типа служб, определенных в файле
web-services.xml, генерируется сценарий Ant и,
при необходимости, дополнительный код Java, представляющий интерфейс конечной
точки веб-службы, для воспроизведения аналогичной службы JAX-RPC.
- Поддерживаемые компоненты
Только корпоративные бобы Stateless Session (<stateless-ejb>) и компоненты Java (R) (<java-class>) могут быть распознаны и преобразованы.
- Компоненты EJB без сохранения состояния:
JAR-файл Enterprise JavaBeans (TM) (EJB), как определено в атрибуте path элемента <ejb-link>, должен существовать в проекте. Автоматическое исправление сканирует JAR-файл EJB и генерирует новый класс Service Endpoint Interface (SEI) на основе удаленного класса EJB.
Интерфейсы SEI отличаются от удаленных интерфейсов EJB тем тем, что класс должен расширять
java.rmi.Remote
, и каждый метод должен выбрасывать исключение,
java.rmi.RemoteException
.
Автоматическое исправление будет использовать Java отражение на удаленном интерфейсе EJB удаленного интерфейса для генерации нового SEI .
Поэтому убедитесь, что в пути классов вашего проекта Eclipse указаны все необходимые классы, JAR-файлы и каталоги, необходимые для успешной загрузки удаленного класса EJB.
SEI должен быть сгенерирован в папке sei внутри папки генерации, как указано пользователем в правиле свойства. Пакет SEI совпадает с пакетом удаленного интерфейса EJB и имя SEI будет таким же, как и имя удаленного интерфейса EJB с добавлением слова SEI. Кроме того, новая папка SEI добавляется в путь класса проекта.
- Компоненты классов Java:
Как и в случае с компонентами EJB, автоматическое исправление сгенерирует интерфейс конечной точки службы из класса Java, который определен в атрибуте <class-name>.
- Создаваемые цели Ant:
Созданный сценарий Ant содержит цели для для создания WSDL-файла и службы JAX-RPC на основе нового SEI, который который будет создан.
Цель генерации WSDL будет иметь имя, genWSDL_ssss, где ssss - это имя службы JAX-RPC, которое было предоставлено в поле атрибута name элемента <web-service элемента.
Цели генерации сервисов имеют имя, genService_pppp, где pppp - имя компонента из атрибута name атрибута элемента <stateless-ejb> или <java-class>.
Автоматическое исправление не будет использовать информацию, предоставленную в других элементах, таких как <handlers-chain>, <types>, <операции>, <безопасность> и так далее.
Службы JAXRPC, определенные в файле webservices.xml
Исходя из набора и типа служб, определенных в файле
webservices.xml, создается сценарий Ant,
воспроизводящий службу JAX-RPC.
- Создаваемые цели Ant:
Созданный сценарий Ant содержит цели для генерации файла WSDL и
службы JAX-RPC.
Цель генерации WSDL создается только в том случае, если вы не можете найти WSDL-файл, определенный в элементе, <wsdl-file>.
Если он создан, цель генерации WSDL имеет имя, genWSDL_ssss,, где ssss - это имя службы, как определено в элементе <webservice-description-name>.
Цели генерации сервисов будут иметь имя, genService_pppp, где pppp - это имя порта, определенное элементом элементом <port-component-name>.
Задачи Ant IBM WebSphere Application Server
В WebSphere(R) Application Server предусмотрены задачи Ant, такие как java2wsdl
и wsdl2java, позволяющие сгенерировать необходимые артефакты для служб JAX-RPC. Созданный сценарий Ant использует эти задачи для создания службы.
Дополнительную информацию об этих задачах можно получить из WebSphere Application Server документации.
Запуск сценария Ant
После создания сценария Ant просмотрите его и при необходимости добавьте дополнительные настройки.
Обратитесь к документации по серверу приложений, чтобы узнать о дополнительных настройках для задач IBM Ant.
Вы должны запустить сценарий с помощью инструментов Ant, которые входящие в состав WebSphere Application Server. Скрипт IBM Ant можно запустить из:
- WAS_HOME\bin\ws_ant.bat в операционных системах Windows(R)
- WAS_HOME\bin\ws_ant.sh в операционных системах UNIX(R)
Например: c:\IBM\AppServer\bin\ws_ant.bat -f
c:\eclipse\MyProject\ibm-ws-gen.xml genService_TestService
После запуска целей Ant созданные артефакты помещаются в папке генерации. Затем пользователь может просмотреть сгенерированный код и дескрипторы развертывания, а затем добавить эти артефакты в свои модули.
Рекомендация: Рассмотрите возможность перехода на JAX-WS
Если вы уже вносите изменения в свои веб-сервисы JAX-RPC в рамках миграции или модернизации, мы настоятельно рекомендуем рассмотреть возможность перехода на JAX-WS ( Java API для веб-сервисов XML).
JAX-WS является преемником JAX-RPC и обладает рядом преимуществ:
- Современный дизайн API с улучшенной поддержкой аннотаций и интеграцией с Java EE
- Улучшенная совместимость с другими платформами и стандартами веб-сервисов
- Улучшенный инструментарий и поддержка в современных серверах приложений и IDE
- Долгосрочная жизнеспособность, поскольку JAX-RPC считается устаревшей технологией
Переход на JAX-WS уже сейчас может сократить будущий технический долг и привести ваше приложение в соответствие с текущими стандартами веб-сервисов Java.
Инструкции по переходу с JAX-RPC на JAX-WS см. в сценариях миграции веб-сервисов: с JAX-RPC на JAX-WS и документации JAXB.