Реализация JAX-RPC предоставлена, но не используется

Проверка с помощью инструмента преобразования JAX-RPC определила веб-службу JAX-RPC в этом сканировании-это хороший кандидат для двоичного преобразования в JAX-WS с помощью Инструмента преобразования JAX-RPC. В приложении обнаружена реализация для JAX-RPC. Реализацию JAX-RPC можно продолжать использовать в приложении без изменений кода. Это правило помечает любые пакеты и файлы конфигурации JAX-RPC. Кроме того, это правило помечает все вхождения тега jaxrpc-mapping-file в файлах связей XML. В следующей таблице указаны пакеты Java, файлы конфигурации и файлы связей XML, которые затрагивает это правило:

Пакеты

Файлы конфигурации

Файлы привязок XML

  • javax.xml.rpc
  • javax.xml.rpc.encoding
  • javax.xml.rpc.handler
  • javax.xml.rpc.handler.soap
  • javax.xml.rpc.holders
  • javax.xml.rpc.server
  • javax.xml.rpc.soap
  • ibm-webservices-ext.xmi
  • ibm-webservices-bnd.xmi
  • ibm-webservicesclient-ext.xmi
  • ibm-webservicesclient-bnd.xmi
  • ws-security.xml
  • webservices.xml
  • web.xml
  • ejb-jar.xml
  • ibm-webservicesclient-bnd.xmi
  • application.xml

API Java для RPC на основе XML (JAX-RPC) не поддерживается в Liberty и Liberty Core. Технология устарела в WebSphere Application Server traditional V9.0 и может быть удалена в следующей версии. Путь стратегической миграции-использование JAX-WS. Относительные усилия будут изменяться в зависимости от выбранного пути миграции:

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

Факторы проекта

Вариант 1

Перенастройка с веб-служб JAX-RPC на веб-службы JAX-WS с помощью инструмента JAX-RPC Conversion

Вариант 2

Перенастройка с веб-служб JAX-RPC на веб-службы JAX-WS вручную

Вариант 3

Использование модуля JAX-RPC Apache Axis 1 в Liberty

Опция 4

Использование WebSphere Application Server traditional с его встроенным модулем JAX-RPC

Поддерживаемое решение

Да

JAX-WS поддерживается как конфигурируемая возможность во всех редакциях Liberty, кроме Liberty Core. Скачайте файл WebSphere Liberty JAX-RPC Conversion Tool for Maven and Gradle.

Да

JAX-WS поддерживается как конфигурируемая возможность во всех редакциях Liberty, кроме Liberty Core.

Нет

Axis 1 не поддерживается.

Да

JAX-RPC поддерживается в WebSphere Application Server traditional.

Стратегическое решение

Да

JAX-WS - стратегия, принятая во всех редакциях Liberty, кроме Liberty Core.

Да

JAX-WS - стратегия, принятая во всех редакциях Liberty, кроме Liberty Core.

Нет

Разработка Axis 1 прекращена.

Нет

JAX-RPC является устаревшим в WebSphere Application Server traditional и может быть удален в следующей версии.

Сложность реализации

Низкая

Приложение прошло проверку для инструмента преобразования JAX-RPC, службы JAX-RPC можно преобразовать в веб-службы JAX-WS инструментом.

Высокий

Вариант может быть сложным при большом числе веб-служб и клиентов JAX-RPC. Без инструмента JAX-RPC Conversion портирование служб JAX-RPC в JAX-WS требует многочисленных изменений в базе исходного кода.

Низкая

Если приложение уже использует Axis 1, этот вариант не представляет сложности. В противном случае он имеет средний уровень сложности.

Средняя

При миграции веб-служб JAX-RPC на другой модуль большая часть базового кода сохраняется.

Дополнительные возможности

Да

JAX-WS предоставляет множество дополнительных функций, таких как аннотации, привязка JAXB и SOAP 1.2.

Да

JAX-WS предоставляет множество дополнительных функций, таких как аннотации, привязка JAXB и SOAP 1.2.

Нет

В JAX-RPC отсутствуют многие из дополнительных функций, существующих в JAX-WS.

Нет

В JAX-RPC отсутствуют многие из дополнительных функций, существующих в JAX-WS.

Соответствие спецификациям

Да

Да

Да

Хотя JAX-RPC все еще является частью спецификации Java EE, она устарела, начиная с Java EE 6.

Да

Хотя JAX-RPC все еще является частью спецификации Java EE, она устарела, начиная с Java EE 6.

Рекомендации

Используйте эту опцию, если приложение удовлетворяет требованиям инструмента JAX-RPC Conversion.

Используйте эту опцию, если у вас небольшое число веб-служб JAX-RPC и приложение не соответствует требованиям инструмента JAX-RPC Conversion.

Этот вариант следует использовать, если веб-службы JAX-RPC уже работают в Axis 1.

Этот вариант следует использовать, если веб-службы JAX-RPC уже работают в WebSphere Application Server traditional или имеется большое число веб-служб JAX-RPC, еще не работающих в Axis 1.

Перенастройка с веб-служб JAX-RPC на веб-службы JAX-WS с помощью инструмента JAX-RPC Conversion

Скачайте инструмент JAX-RPC Conversion со страницы WebSphere Liberty JAX-RPC Conversion Tool for Maven and Gradle.

Перенастройка приложений с JAX-RPC на JAX-WS инструментом JAX-RPC Conversion описана в онлайн-документации Перенастройка приложений JAX-RPC в Liberty с помощью Maven или Перенастройка приложений JAX-RPC в Liberty с помощью Gradle.

Перенастройка с веб-служб JAX-RPC на веб-службы JAX-WS вручную

Информация о миграции приложений с JAX-RPC на JAX-WS приведена в разделе Сценарии миграции веб-служб: с JAX-RPC на JAX-WS и JAXB в электронной документации.

За дополнительной информацией об отличиях JAX-RPC от JAX-WS обратитесь к разделу Модель развертывания приложений JAX-WS.

Использование модуля JAX-RPC Apache Axis 1 в Liberty

Если Axis 1 уже используется, то для его использования в Liberty необходимо добавить библиотеки Axis 1 в путь к классам Liberty.

При использовании встроенного JAX-RPC можно преобразовать веб-службы для использования Axis 1. В следующей процедуре описано, как перенастроить веб-службу Red Hat JBoss на Axis 1.

  1. Загрузите библиотеки Axis 1.0 с веб-сайта Apache.
    Примечание: Axis 2.0 использует JAX-WS и не поддерживает веб-службы JAX-RPC.
  2. Добавьте библиотеки Axis в путь к классам. Для этого включите их в путь к классам сервера или поместите в каталог WEB-INF/lib приложения.
  3. Удалите ссылку на веб-службу из файла web.xml.
  4. Добавьте сервлеты администрирования Axis в файл web.xml. Примеры файла web.xml приведены в разделе Расширенная установка: добавление Axis в Webapp на веб-сайте Apache.
  5. Создайте повторно веб-службы из файла WSDL с помощью следующей команд:

       java -cp <AXIS LIBRARIES> org.apache.axis.wsdl.WSDL2Java -t    java -cp <AXIS LIBRARIES> org.apache.axis.wsdl.WSDL2Java -t -s -o <Output directory> <WSDL file>

    Дополнительные сведения об этой команде приведены в разделе Справочник WSDL2Java на веб-сайте Apache.

  6. Создайте файл описания Axis, для чего создайте в каталоге WEB-INF файл XML с именем server-config.wsdd.

    Дополнительная информация об элементах конфигурации WSDD приведена в разделе Справочник по развертыванию (WSDD) на веб-сайте Apache.

  7. Измените код клиента в соответствии с требованиями новой среды. Так как сервер не используется в качестве контейнера, ссылки JNDI применять нельзя. Ссылки JNDI необходимо удалить и заменить на прямые указатели на URL.

    Например следующий метод использует поиск JNDI:


    public DemoType getService() throws Exception {

    javax.naming.InitialContext ctx = new javax.naming.InitialContext();

    DemoService service = (DemoService)ctx.lookup("java:comp/env/service/Demo");

    return service.getDemoService();
    }

    Необходимо заменить поиск:

    private com.ibm.demo.webservices.server.DemoType getService() throws Exception {

    com.ibm.demo.webservices.server.DemoService_ServiceLocator service = new com.ibm.demo.webservices.server.DemoService_ServiceLocator();

    com.ibm.demo.webservices.server.DemoType demoType = service.getDemoService();

    return demoType;

    }

Использование WebSphere Application Server traditional с его встроенным модулем JAX-RPC

Если требуется применять модуль JAX-RPC WebSphere Application Server, то необходимо использовать редакцию WebSphere Application Server traditional. Liberty не поддерживает JAX-RPC. Если требуется использовать Liberty, то необходимо выбрать другие варианты.

Только конфигурирование

Если файлы конфигурации JAX-RPC найдены, однако JAX-RPC Java API не используется в приложении, то файлы конфигурации могли остаться от ранее использовавшейся технологии JAX-RPC, которая больше не нужна. Неиспользуемую конфигурацию можно удалить.