Migración de JAX-RPC a JAX-WS

Esta regla marca el uso de cualquier paquete y configuración específicos de JAX-RPC:

Paquetes

Archivos de configuración

  • 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
  • webservices.xml
  • web.xml
  • ejb-jar.xml
  • application.xml

La API de Java para RPC basado en XML (JAX-RPC) no está soportada en Liberty o Liberty Core. La tecnología está en desuso en WebSphere Application Server tradicional V9.0 y puede que se elimine en una versión posterior. El método estratégico de migración es utilizar JAX-WS. El esfuerzo relativo cambiará en función del método de migración elegido:

En la tabla siguiente se comparan las cinco opciones en función de los factores que pueden afectar a su proyecto.

Factores del proyecto

Opción 1

Migración de servicios web JAX-RPC a servicios web JAX-WS mediante JAX-RPC Source Migration Helper

Opción 2

Migrar servicios web JAX-RPC a servicios web JAX-WS utilizando la Herramienta de conversión JAX-RPC

Opción 3

Migrar servicios web JAX-RPC a servicios web JAX-WS manualmente

Opción 4

Utilizar el motor JAX-RPC de Apache Axis 1 en Liberty

Opción 5

Utilizar WebSphere Application Server tradicional con su motor JAX-RPC nativo

Solución soportada

JAX-WS está soportado como una característica configurable en todas las ediciones de Liberty excepto Liberty Core.

JAX-WS está soportado como una característica configurable en todas las ediciones de Liberty excepto Liberty Core. Descargue la Herramienta de conversión JAX-RPC de WebSphere Liberty para Maven y Gradle.

JAX-WS está soportado como una característica configurable en todas las ediciones de Liberty excepto Liberty Core.

Nee

Axis 1 no está soportado.

JAX-RPC está soportado en WebSphere Application Server tradicional.

Solución estratégica

JAX-WS es estratégico para todas las ediciones de Liberty excepto Liberty Core.

JAX-WS es estratégico para todas las ediciones de Liberty excepto Liberty Core.

JAX-WS es estratégico para todas las ediciones de Liberty excepto Liberty Core.

Nee

Axis 1 ya no está bajo desarrollo.

Nee

JAX-RPC está en desuso en WebSphere Application Server tradicional y puede que se elimine en una versión posterior.

Complejidad de la implementación

Media

La aplicación fue validada para el uso del JAX-RPC Source Migration Helper. Los servicios JAX-RPC pueden convertidos en servicios web JAX-WS por esta herramienta en el código fuente de su aplicación.

Baja

La aplicación se ha validado para utilizar la Herramienta de conversión JAX-RPC. Los servicios JAX-RPC pueden convertirse en servicios web JAX-WS en el archivo binario con esta herramienta.

Alta

Esta opción puede ser compleja si intervienen muchos clientes JAX-RPC y servicios web. Si no se utiliza la Herramienta de conversión JAX-RPC para portar servicios JAX-RPC a JAX-WS, se necesitan muchos cambios en el código base.

Baja

Si la aplicación ya está utilizando Axis 1, esta opción no es compleja. De lo contrario, esta opción es de complejidad media.

Media

La migración de servicios web de JAX-RPC a un motor diferente conserva la mayoría del código base.

Características avanzadas

JAX-WS proporciona muchas funciones avanzadas, tales como Annotations, JAXB Binding y SOAP 1.2.

JAX-WS proporciona muchas funciones avanzadas, tales como Annotations, JAXB Binding y SOAP 1.2.

JAX-WS proporciona muchas funciones avanzadas, tales como Annotations, JAXB Binding y SOAP 1.2.

Nee

JAX-RPC carece de muchas de las funciones avanzadas que están disponibles en JAX-WS.

Nee

JAX-RPC carece de muchas de las funciones avanzadas que están disponibles en JAX-WS.

Conformidad con la especificación

Aunque JAX-RPC todavía forma parte de la especificación Java EE, está en desuso con Java EE 6.

Aunque JAX-RPC todavía forma parte de la especificación Java EE, está en desuso con Java EE 6.

Recomendación

Utilice esta opción si tiene derecho a la IBM Application Modernization Accelerator Developer Tools. Esta es la única opción que proporciona asistencia automatizada para migrar el código fuente de las aplicaciones a JAX-WS.

Utilice esta opción si la aplicación cumple los requisitos de la Herramienta de conversión JAX-RPC. Esta herramienta sólo convierte archivos binarios.

Utilice esta opción si tiene pocos servicios web JAX-RPC y la aplicación no cumple los requisitos de la Herramienta de conversión JAX-RPC.

Utilice esta opción si sus servicios web de JAX-RPC ya se están ejecutando en Axis 1.

Utilice esta opción si sus servicios web de JAX-RPC ya se ejecutan en WebSphere Application Server tradicional, o si tiene muchos servicios web de JAX-RPC que no se ejecutan todavía en Axis 1.

Migración de servicios web JAX-RPC a servicios web JAX-WS mediante JAX-RPC Source Migration Helper

JAX-RPC Source Migration Helper está disponible en IBM Application Modernization Accelerator Developer Tools. Esta herramienta ayudará en la transformación de servicios JAX-RPC heredados en JAX-WS en el código fuente de la aplicación. Para más información, consulte Application Modernization Accelerator Developer Tools resumen.

Migrar servicios web JAX-RPC a servicios web JAX-WS utilizando la Herramienta de conversión JAX-RPC

Descargue la herramienta de conversión JAX-RPC de WebSphere Liberty JAX-RPC Conversion Tool para Maven y Gradle para migrar el archivo binario.

Para obtener información sobre la migración de aplicaciones de JAX-RPC a JAX-WS utilizando la Herramienta de conversión JAX-RPC, consulte Migración de aplicaciones JAX-RPC a Liberty utilizando Maven o Migración de aplicaciones JAX-RPC a Liberty utilizando Gradle en la documentación en línea.

Migrar servicios web JAX-RPC a servicios web JAX-WS manualmente

Para obtener información sobre la migración de aplicaciones de JAX-RPC a JAX-WS, consulte Escenarios de migración de servicios web: JAX-RPC a JAX-WS y JAXB en la documentación en línea.

Para obtener más información sobre las diferencias entre JAX-RPC y JAX-WS, consulte Modelo de despliegue de aplicaciones JAX-WS.

Utilizar el motor JAX-RPC de Apache Axis 1 en Liberty

Si ya utiliza Axis 1, para utilizarlo en Liberty debe incluir las bibliotecas de Axis 1 en la vía de acceso de clases de Liberty.

Si utiliza un JAX-RPC incorporado, puede convertir los servicios web para que utilicen el eje 1. El procedimiento siguiente describe cómo migrar un servicio web desde Red Hat JBoss al eje 1.

  1. Descargue las bibliotecas Axis 1.0 desde el sitio web de Apache.
    Nota: Axis 2.0 utiliza JAX-WS y no es compatible con servicios web de JAX-RPC.
  2. Incluya las bibliotecas de Axis en la vía de acceso de clases. Puede incluir las bibliotecas en la vía de acceso de clases del servidor o en el directorio WEB-INF/lib de la aplicación.
  3. Elimine la referencia al servicio web en el archivo web.xml.
  4. Añada los servlets de administrador de Axis al archivo web.xml. Para ver ejemplos del archivo web.xml, consulte Instalación avanzada: adición de Axis a su propia aplicación web en el sitio web de Apache.
  5. Vuelva a crear los servicios web desde el archivo WSDL utilizando el mandato siguiente:

       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>

    Para obtener más información sobre este mandato, consulte la Referencia de WSDL2Java en el sitio web de Apache.

  6. Cree un descriptor de despliegue de Axis creando un archivo XML denominado server-config.wsdd en el directorio WEB-INF.

    Para obtener más información sobre los elementos de configuración de WSDD, consulte la Referencia de despliegue (WSDD) en el sitio web de Apache.

  7. Modifique el código del cliente de acuerdo con el nuevo entorno. Debido a que el servidor no se utiliza como contenedor, no se pueden utilizar referencias a JNDI. Las referencias a JNDI se deben eliminar y sustituir por referencias directas al URL.

    Por ejemplo, el método siguiente tiene una búsqueda 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();
    }

    La búsqueda se debe sustituir:

    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;

    }

Utilice WebSphere Application Server tradicional con su motor JAX-RPC nativo

Si desea utilizar el motor JAX-RPC de WebSphere Application Server, debe utilizar el WebSphere Application Server tradicional. Liberty no da soporte a JAX-RPC. Si desea utilizar Liberty, debe elegir una de las demás opciones.