Implementación JAX-RPC proporcionada, pero no utilizada

La validación de la herramienta de conversión JAX-RPC ha determinado que un servicio web JAX-RPC de esta exploración es un buen candidato para la conversión binaria a JAX-WS utilizando la Herramienta de conversión JAX-RPC. Se ha detectado una implementación para JAX-RPC en la aplicación. Puede seguir utilizando la implementación JAX-RPC proporcionada en la aplicación sin cambios de código. Esta regla marca el uso de paquetes y archivos de configuración específicos de JAX-RPC. Esta regla también marcará el uso del código jaxrpc-mapping-file en archivos de correlaciones XML. En la tabla siguiente se listan los paquetes Java, los archivos de configuración y los archivos de correlaciones XML afectados por esta regla:

Paquetes

Archivos de configuración

Archivos de correlaciones 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

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 cuatro opciones según los factores que pueden afectar al proyecto.

Factores del proyecto

Opción 1

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

Opción 2

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

Opción 3

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

Opción 4

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. 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.

No

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.

No

Axis 1 ya no está bajo desarrollo.

No

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

Baja

La aplicación ha pasado la validación para la Herramienta de conversión JAX-RPC, la herramienta puede convertir los servicios JAX-RPC en servicios web JAX-WS.

Alto

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.

Nee

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

No

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 la aplicación cumple los requisitos de la Herramienta de conversión JAX-RPC.

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.

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 la Herramienta de conversión JAX-RPC de WebSphere Liberty para Maven y Gradle.

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.

Sólo configuración

Si se detectan archivos de configuración de JAX-RPC, pero no se detecta ningún uso de la API Java de JAX-RPC en esta aplicación, es posible que los archivos de configuración de un uso anterior de la tecnología JAX-RPC ya no sean necesarios. La configuración no utilizada se puede eliminar.