Aborde las especificaciones de interoperabilidad de WS-Security, Parte 4: Añadir un punto final de proveedorJ2EE 1.3 al servicios web J2EE 1.4

las primeras entregas de esta serie de artículos ofrecen métodos alternativos para los problemas específicos de interoperabilidad a nivel de las especificaciones de servicios web de seguridad (WS-Security — las incompatibilidades entre las diferentes versiones de WS-Security evitan que el cliente de la Plataforma Java™ 2, Enterprise Edition (J2EE) 1.3 se comunique con un proveedor de servicios web J2EE 1.4 cuando se necesita WS-Security. Ahora averigüe cómo añadir un nuevo punto final de proveedor de servicio.

Zeynep Latif, Software Engineer, IBM

Photo of Zeynep LatifZeynep Latif es un Ingeniero de software Sénior en el caso de ejemplo IBM Sofware Group, La organización del laboratorio de análisis está ubicada en Research Triangle Park, Carolina del Norte. Sus áreas de especialización incluyen el desarrollo de aplicaciones portlet y J2EE, IBM Rational Application Developer, IBM Rational Software Architect para el diseño de aplicaciones.



David Leigh, Advisory Software Engineer, IBM

David Leigh es un Ingeniero de Software Sénior en la organización del laboratorio de análisis del Grupo de Sofware de IBM, está ubicada en Research Triangle Park, Carolina del Norte. Sus áreas de especialización incluyen IBM WebSphere Process Choreographer, la aplicación y el servidor de seguridad, alta disponibilidad, supervisión, IBM AIX®, y Linux®.



30-01-2012

Introducción

En este artículo muestra cómo implementar el nuevo método alternativo del punto final del proveedor para los problemas de interoperabilidad de nivel de especificación de WS-Security. El enfoque incluye el empaquetado de la aplicación del proveedor J2EE 1.4 con dos puntos finales de servicios web: Uno ofrece servicios para los consumidores de J2EE 1.3, y otra ofrece servicio para los consumidores de J2EE 1.4. La implementación de este método alternativo es un ejercicio de empaquetado y programación básica, sin necesidad de infraestructura middleware adicional. Este enfoque se adapta bien cuando hay un gran número de aplicaciones de consumidores de servicios web.

Después de añadir el nuevo punto final del proveedor a la aplicación de servicios web, cualquier número de aplicaciones de consumidor de servicios web J2EE 1.3 puede utilizarlo. Un apunte importante: Este enfoque se utiliza mejor cuando las clases de implementación de servicios web son simples JavaBeans o Enterprise JavaBeans (EJBs). Si la lógica de implementación de servicios web es contenida en un servlet, en un componente de Arquitectura de Componente de Servicio (SCA), o en un módulo de mediación Enterprise Service Bus (ESB), entonces resulta más difícil crear un proyecto y paquete Web servlet de servlet 2.2 (J2EE 1.3) con la aplicación de proveedor de servicios web.

El esfuerzo requerido para implementar el este enfoque es principalmente un trabajo de desarrollo de aplicación, aunque este método alternativo introduce otro punto final de servicios web que se debe implementar, asegurar, y gestionar a través del equipo de operaciones. Además de los desarrolladores de aplicaciones, este enfoque también necesita de la participación del personal de implementación y prueba.

Este artículo asume que los desarrolladores de aplicaciones que implementan este enfoque deben tener la habilidad básica en el desarrollo de servicios web y J2EE.

Este artículo describe en detalle la forma de implementar el punto final del nuevo proveedor utilizando un ejemplo plenamente aplicado que usted puede desplegar en su entorno. La sección Visión general de la solución describe el enfoque en detalle; la sección Diseño de la solución le lleva a través de las tareas de implementación que muestran cómo se han desarrollado las aplicaciones de muestra proporcionadas, y la sección Trabajar con la aplicación de muestra describe como personalizar y ejecutar las aplicaciones de muestra en su entorno de tiempo de ejecución.


Visión general de la solución

La Figura 1 muestra una vista detallada del tiempo de ejecución del método alternativo del punto final del proveedor. La aplicación del cliente J2EE 1.3 se comunica con la aplicación de punto final de servicios web J2EE 1.3 utilizando los servicios web y la especificación 13 del borrador de WS-Security. La aplicación del cliente J2EE 1.4 se comunica con la aplicación de punto final de servicios web J2EE 1.4 utilizando los servicios web y la especificación WS-Security versión 1.0. A continuación, las aplicaciones punto final de servicios, crean una instancia de clases de servicios web J2EE 1.4 incluidas en la biblioteca compartida, que a su vez realiza una llamada RMI/IIOP a la EJB backend.

En general, se supone que usted está tratando de añadir un nuevo cliente J2EE 1.3 y punto final de proveedor a su actual proveedor J2EE 1.4. La aplicación de proveedor J2EE 1.4 incluye un EJB que contiene la lógica de empresa. En la Figura 1, los recuadros de color beis representan los actuales componentes J2EE 1.4 y los recuadros de color rosa representan nuevos componentes, que este artículo muestra cómo crear e integrar con el archivo EAR de la aplicación del proveedor J2EE 1.4.

Figura 1. Componentes de la solución de punto final de nuevo proveedor
Componentes de la solución de punto final de nuevo proveedor

La Tabla 1 muestra las tareas y productos necesarios para crear la solución.

Tabla 1. Tareas y productos necesarios para crear la solución
TareasEntorno Roles responsables
1. Crear un punto final de servicios web J2EE 1.3 y una biblioteca compartidaIBM® Rational® Desarrollador de aplicaciones Desarrollador de aplicaciones
2. Modificar el punto final de servicio Web J2EE 1.3. Rational Application DeveloperDesarrollador de aplicaciones
3. Conecte la biblioteca compartida a los puntos finales de servicios web J2EE 1.3 y J2EE 1.4. Rational Application DeveloperDesarrollador de aplicaciones
4. Conecte el EJB backend a la biblioteca compartida, los puntos finales de servicios web J2EE 1.3 y J2EE 1.4. Rational Application DeveloperDesarrollador de aplicaciones
5. Integrar la aplicación del cliente con el cliente de servicios web J2EE 1.3. Rational Application DeveloperDesarrollador de aplicaciones
6. Añadir la seguridad.Rational Application DeveloperDesarrollador de aplicaciones
7. Implementar y probar la unidad de la solución en el entorno de tiempo de ejecución. IBM WebSphere® Application ServerIngeniero de implementación y prueba

La implementación de la Tarea 1 implica el uso de los asistentes adecuados en el Rational Application Developer para crear unos puntos finales de servicios web J2EE 1.3 y J2EE 1.4. y una biblioteca compartida. (Buscar un ejemplo detallado de esto en la siguiente sección Diseño de la solución).

La implementación de la solución (Tarea 7) requiere la implementación de las siguientes aplicaciones:

  • Aplicaciones de clientes
  • Aplicaciones de proveedor, que incluyen lo siguiente:
    • Los puntos finales de servicios web J2EE 1.3 and J2EE 1.4
    • La biblioteca compartida
    • El EJB backend que contiene la lógica de empresa para el servicio web

Diseño de la solución

Esta sección describe como modifica una aplicación de proveedor de servicios web J2EE 1.4 por lo que puede utilizarse con los clientes J2EE 1.3 y J2EE 1.4. El Listado 1 de fragmentos del código se toma de las aplicaciones de muestra y se suministran para que usted pueda aplicar este enfoque a sus propias aplicaciones. La Tabla 2 muestra las tareas necesarias.

Tabla 2. Pasos y productos necesarios para crear la solución
TareasPasos Entorno Roles responsables
1. Crear un punto final de servicios web J2EE 1.3 y una biblioteca compartida
  1. Crear un esquema de servicios web Java J2EE 1.3 basado en la actual Lenguage de Descripción de servicios web(WSDL).
  2. Crear un nuevo proyecto Java.
Rational Application DeveloperDesarrollador de aplicaciones
2. Modificar el punto final de servicio Web J2EE 1.3.
  1. Eliminar el archivo EAR del servicio web J2EE 1.3 del Entorno de Prueba de Unidad (UTE).
  2. Eliminar el proyecto Web del servicio web J2EE 1.3 de su archivo EAR.
  3. Borrar el proyecto EAR del servicio web J2EE 1.3 del espacio de trabajo.
  4. Añadir el proyecto web del servicio web J2EE 1.3 al archivo EAR del servicio web J2EE 1.4.
  5. Modificar el archivo webservices.xml del servicio web J2EE 1.3.
  6. Borrar todas las clases generadas del servicio web J2EE 1.3.
Rational Application DeveloperDesarrollador de aplicaciones
3. Conecte la biblioteca compartida a los puntos finales de servicios web J2EE 1.3 y J2EE 1.4.
  1. Añadir el proyecto Java de la biblioteca compartida al archivo EAR del servicio J2EE 1.4 Web, como una biblioteca de utilidad.
  2. Mover todas las clases generadas del servicio web J2EE 1.4 al proyecto Java de las bibliotecas compartidas.
  3. Añadir la biblioteca compartida como una dependencia JAR a los servicios web J2EE 1.3 and J2EE 1.4.
Rational Application DeveloperDesarrollador de aplicaciones
4. Conecte el EJB backend a la biblioteca compartida, los puntos finales de servicios web J2EE 1.3 y J2EE 1.4.
  1. Añadir los archivos J2EE 1.4 EJB y EJBClient.jar al archivo EAR del servicio web J2EE 1.4.
  2. Añadir el archivo J2EE 1.4 EJBClient.jar como una dependencia JAR al proyecto Java de la biblioteca compartida.
  3. Editar la clase SOAPImpl de la biblioteca compartida, y añadir el código necesario para invocar el EJB backend J2EE 1.4.
  4. [Opcional] Crear interfaces locales EJB.
  5. Editar el archivo web.xml del proyecto Web de los servicios web J2EE 1.3 y J2EE 1.4 para añadir la referencia de los recursos EJB que utiliza la biblioteca compartida.
Rational Application DeveloperDesarrollador de aplicaciones
5. Integrar la aplicación del cliente con el cliente de servicios web J2EE 1.3. Integrar la aplicación del cliente con el cliente de servicios web J2EE 1.3. Rational Application DeveloperDesarrollador de aplicaciones
6. Añadir la seguridad. Configurar la aplicación del cliente, los puntos finales de servicios web J2EE 1.3 y J2EE 1.4. por seguridad. Rational Application DeveloperDesarrollador de aplicaciones
7. Implementar y probar la unidad de la solución en el entorno de tiempo de ejecución. Implementar y probar las aplicaciones de solución empaquetadas en el entorno de tiempo de ejecución. WebSphere Application Server Ingeniero de implementación y prueba

Tarea 1: Crear un punto final de servicios web J2EE 1.3 y una biblioteca compartida

Esta sección explica los pasos básicos necesarios para crear el J2EE 1.3 y la biblioteca compartida. (Vea la sección Recursos de enlaces a información adicional para las operaciones relacionadas a los clientes y los asistentes básicos del Rational Application Developer asistentes para implementar los siguientes pasos.)

  1. Crear un nuevo esquema Java bean J2EE 1.3 de servicios web de desde un actual WSDL utilizando el Asistente de servicios web. Proporcionar lo siguiente en el panel Service Deployment Configuration:
    1. Seleccione 1.3 como la versión J2EE.
    2. Proporcionar un nuevo proyecto Web como un proyecto de servicio, y proporcionar un nuevo proyecto EAR.
  2. Crear un proyecto Java, el cual se utiliza como una biblioteca compartida utilizando el asistente de proyecto Java que proporciona el Rational Application Developer.

Tarea 2: Modificar el punto final de servicios web J2EE 1.3.

Usted está preparado para realizar este paso una vez completadas la Tarea 1 como se muestra en la Tabla 2. Esta sección explica las actualizaciones necesarias en el punto final del servicio web J2EE 1.3. (Vea Recursos a los enlaces para obtener información adicional sobre las operaciones básicas del Rational Application Developer para implementar los pasos siguientes.)

  1. Borrar el proyecto EAR del servicio web J2EE 1.3 de su UTE, ya que el Desarrolador de Aplicaciones Rational implementa de forma automática el proyecto EAR del servicio web al UTE una vez creado.
  2. Eliminar el proyecto Web del servicio web J2EE 1.3 de su archivo EAR siguiendo las siguientes instrucciones:
    1. En el proyecto Web del servicio webJ2EE 1.3, abrir el archivo META-INF/application.xml .
    2. Haga clic en el botón Module tabular, y hacer clic en el ícono Modules .
    3. Seleccione el archivo .war del proyecto Web del servicio web J2EE 1.3, a continuación haga clic en Remove.
    4. Guardar el archivo application.xml .
  3. Borrar el proyecto EAR del servicio web J2EE 1.3 del espacio de trabajo del Rational Application Developer.
  4. Añadir el proyecto Web del servicio web J2EE 1.3 al actual archivo EAR del servicio web J2EE 1.4 Web haciendo lo siguiente:
    1. En el actual esquema Java bean del proyecto EAR del servicio web J2EE 1.4, abrir el archivo META-INF/application.xml .
    2. Haga clic en el botón Module tabular, y hacer clic en el ícono Modules .
    3. Haga clic en Add.
    4. Seleccione el proyecto Web para el punto final J2EE 1.3, a continuación haga clic en Finish.
    5. Guardar el archivo META-INF/application.xml .
  5. Modificar el archivo webservices.xml ,ubicado en el proyecto Web de los servicios web J2EE 1.3, de modo que la interfaz del punto final del servicio en el tabular Componente de puerto coincide con el que se especifica en el archivo webservices.xml del proyecto Web J2EE 1.4 Web actual. Para implementar esto, haga lo siguiente:
    1. En proyecto Web de servicios web J2EE 1.3, abrir el archivo webservices.xml .
    2. Haga clic en el botón Port Components tabular, y hacer clic en el ícono Detalles de implementación del componente del puerto .
    3. Actualice la interfaz de punto final de servicio *_Port hasta *_PortType.
    4. Guardar el archivo webservices.xml .
  6. Elimine todos las clases de servicios web generados en el directorio JavaSource del proyecto Web J2EE 1.3.

Tarea 3: Conecte la biblioteca compartida a los puntos finales de servicios web J2EE 1.3 y J2EE 1.4.

Esta sección explica los pasos necesarios para conectar la biblioteca compartida, la cual es un proyecto Java, con los puntos finales de servicios web J2EE 1.3 y J2EE 1.4. (Vea Recursos para los enlaces para obtener información adicional sobre las operaciones básicas del Rational Application Developer para implementar los pasos siguientes.)

  1. Añadir el proyecto de Java al archivo EAR J2EE 1.4 como una biblioteca de utilidades haciendo lo siguiente:
    1. En el del proyecto EAR del servicio web Java bean del esquema J2EE 1.4, abrir el archivo META-INF/application.xml .
    2. Haga clic en el botón Module tabular, y hacer clic en el ícono Project Utility JARs .
    3. Haga clic en Add.
  2. Las aplicaciones de los puntos finales J2EE 1.3 y J2EE 1.4 tienen que acceder a las clases de servicios web J2EE 1.4 por medio de la biblioteca compartida. Así que ahora tiene que mover todos los códigos de servicios web generados en el directorio JavaSource del proyecto Web J2EE 1.4 al proyecto Java de la biblioteca compartida. Aquí aparece la lista de los archivos que hay que mover:
    • Una clase Java por cada tipo de datos complejos. El nombre de clase relacionado para la aplicación de muestra es SampleOperationResponse.
    • Un convertidor paralelo a serie, un desconvertidor paralelo a serie, y una clase ayudante por cada tipo de datos complejos, *_Ser, *_Deser y *_Helper, respectivamente. Los nombres de clases relacionados para la aplicación de muestra son SampleOperationResponse_Ser, SampleOperationResponse_Deser y SampleOperationResponse_Helper.
    • Una interfaz de servicio y su implementación, *_PortType y en el *SOAPImpl, respectivamente. Los nombres de clases relacionados para la aplicación de muestra son SampleService_PortType y SampleServiceSOAPImpl.

    La Figura 2 muestra los archivos que fueron reubicados por la aplicación de muestra.

    Figura 2. Archivos reubicados
    Archivos reubicados
  3. Las aplicaciones de punto final J2EE 1.3 and J2EE 1.4 deben ser consciente de las clases de servicios web en un archivo JAR dependiente. Así que añada el proyecto Java como una dependencia JAR a los proyectos Web J2EE 1.3 and J2EE 1.4. haciendo lo siguiente:
    1. En el del proyecto EAR del servicio web Java bean del esquema J2EE 1.4, abrir el archivo META-INF/application.xml .
    2. Haga clic en el botón Module tabular, y hacer clic en el ícono Project Utility JARs .
    3. Haga clic en Add, y seleccione el proyecto Java.
    4. Haga clic en Finish, y guarde el archivo application.xml .
    5. Implemente las instrucciones siguientes en el proyecto Web de servicios web J2EE 1.3 and J2EE 1.4:
      • Ir al proyecto, resáltelo, y haga clic derecho.
      • Haga clic en Properties > Java JAR Dependencies.
      • en Dependencias Java JAR, seleccione el proyecto Java.
      • Haga clic en OK.

Tarea 4: Conecte el EJB backend a la biblioteca compartida y a los puntos finales de servicios web J2EE 1.3 y J2EE 1.4.

Esta sección explica los pasos necesarios para conectar el EJB backend a la biblioteca compartida y a los puntos finales de servicios web J2EE 1.3 y J2EE 1.4.

  1. Añadir los archivos J2EE 1.4 EJB and EJBClient.jar al archivo EAR J2EE 1.4 EAR haciendo lo siguiente:
    1. En el del proyecto EAR del servicio web Java bean del esquema J2EE 1.4, abrir el archivo META-INF/application.xml .
    2. Haga clic en el botón Module tabular, y hacer clic en el ícono Modules .
    3. Haga clic en Add.
    4. Seleccione el proyecto EJB, y haga clic en Finish.
    5. Si el archivo EJBClient.jar no está incluido en el ícono Project Utility JARs, entonces siga las siguientes instrucciones:
      1. Haga clic en el botón Module tabular, y hacer clic en el ícono Project Utility JARs .
      2. Haga clic en Add.
      3. Seleccione el Proyecto del cliente EJB , y haga clic en Finish.
    6. Guardar los cambios realizados en el archivo application.xml.
  2. Añadir el archivo J2EE 1.4 EJBClient.jar como una dependencia JAR al proyecto Java de la biblioteca compartida haciendo lo siguiente:
    1. Ir al proyecto, resáltelo, y haga clic derecho.
    2. Haga clic en Properties > Java JAR Dependencies.
    3. en Dependencias Java JAR, seleccione el Proyecto del cliente EJB .
    4. Marque el JAR/Module correspondiente, y haga clic en OK.
  3. Editar la clase SOAPImpl del proyecto Java de la biblioteca compartida, y añadir el código necesario para invocar el EJB backend J2EE 1.4. los pasos siguientes muestran el uso de la característica de fragmentos de EJB, que inserta código para llamar al EJB backend:
    1. Ir a perspectiva J2EE .
    2. Abrir el archivo SampleServiceSOAPImp.java .
    3. Situar el cursor en el archivo.
    4. Haga clic en el botón Snippets pulse abajo a la izquierda.
    5. Expandir el EJB drawer.
    6. Haga doble clic en Call an EJB create method.
    7. Seleccione un bean de sesión EJB adecuada en el panel Seleccionar propietario de referencia EJB, haga clic en Next.
    8. Haga clic en New EJB Reference en el panel de referencia seleccionado.
    9. Seleccione elbean de sesión EJB en el panel de referencia EJB.
    10. Elija Local para el tipo de referencia. Si el EJB backend no contiene interfaces locales, seguir la tarea opcional de abajo para añadirlos en el EJB backend.
    11. Haga clic en Finish en la referencia EJB, a continuación haga clic en Finish en el panel de referencia seleccionado.
    12. Añadir manualmente el código necesario en el código generado para trabajar con el EJB backend. El fragmento de código en el Listado 1 muestra un ejemplo del código generado y añadido manualmente.
      Listado 1. Fragmento de clase de implementación del servicio web
      package com.test;
                              
      import com.ibm.etools.service.locator.ServiceLocatorManager;
      import com.test.sessionbean.SampleEJBLocalHome;
      import com.test.sessionbean.SampleEJBLocal;
      
      public class SampleServiceSOAPImpl implements com.test.SampleService_PortType 
      {
      	private final static String STATIC_SampleEJBLocalHome_REF_NAME = 
      "ejb/SampleEJB";
      	private final static Class STATIC_SampleEJBLocalHome_CLASS = 
      SampleEJBLocalHome.class;
          
          public com.test.SampleOperationResponse 
                       sampleOperation(java.lang.String sampleOperationRequest)
                       throws java.rmi.RemoteException 
          {   
              SampleEJBLocal aSampleEJBLocal = createSampleEJBLocal();
              
      /**********************************************************************/
      /* Begin manually added code to work with the sample back-end EJB     */
      /**********************************************************************/
      SampleOperationResponse sampleOperationResponse = new SampleOperationResponse();
      sampleOperationResponse
          .setServiceResponseString("Request string was: " + sampleOperationRequest);
      
      sampleOperationResponse
          .setServiceUserName("Caller is " + anEJBBBackendLocal.getCallerName());
      return sampleOperationResponse;
      /**********************************************************************/
      /* End of manually added code                                         */
      /**********************************************************************/
          }
      
          protected SampleEJBLocal createSampleEJBLocal() 
          {
      SampleEJBLocalHome aSampleEJBLocalHome = 
              (SampleEJBLocalHome) ServiceLocatorManager
      		 .getLocalHome(STATIC_SampleEJBLocalHome_REF_NAME,
      			STATIC_SampleEJBLocalHome_CLASS);
      		try 
                      {
      			if (aSampleEJBLocalHome != null)
      				return aSampleEJBLocalHome.create();
      	         } catch (javax.ejb.CreateException ce) 
                       {
      			        // TODO Auto-generated catch block
      			        ce.printStackTrace();
      	         }
      	         return null;
           }
      }
  4. Siga las instrucciones siguientes para añadir la interfaz inicial local y las clases de interfaz local dentro del proyecto de cliente EJB.
    1. En el proyecto EJB backend, abrir el archivo META-INF/ejb-jar.xml .
    2. Haga clic en el botón Bean tabular, y resaltar el bean correspondiente.
    3. Haga clic en el botón Class and Interface Files , a continuación haga clic Add.
    4. En el panel Vista añadir cliente, comprobar Añadir las nuevas interfaces locales .
    5. Haga clic en Finish.
    6. Guardar el archivo META-INF/ejb-jar.xml .
    7. Ahora usted puede promover la el método de EJB backend relacionado a local.
  5. El último paso para implementar esta tarea es editar el archivo web.xml de los proyectos Web J2EE 1.3 y J2EE 1.4 para añadir los recursos EJB de referencia utilizados por la clase *SOAPImpl ubicada en la biblioteca compartida:
    1. Abrir el archivo WEB-INF/web.xml .
    2. Haga clic en el botón References , a continuación haga clic en Add.
    3. Seleccione el EJB de referencia en el panel Añadir referencia, y hacer clic en Next.
    4. En el panel de referencia Añadir una cadena de caracteres para EJB Web, encontrar y resaltar la bean de sesión.
    5. Asegúrese de que el Tipo de referencia es Local.
    6. Haga clic en Finish, y guarde el archivo web.xml .

Tarea 5. Integrar la aplicación del cliente J2EE 1.3 con el nuevo punto final de proveedor J2EE 1.3

Para implementar este paso:

  • Consulte La parte 3 de esta serie para una explicación detallada sobre cómo integrar un cliente de servicios web en la aplicación cliente. El artículo demuestra la integración de un cliente de servicios web en un bean de sesión. Usted puede adoptar la misma la técnica de integración en la aplicación del cliente.
  • Ver los enlaces Centro de Información del WebSphere Application Server y WebSphere Versión 6 Web Services Handbook Development and Deployment en Recursos para explicaciones detalladas para implementar este paso.

Tarea 6: Añadir la seguridad

Ver los enlaces Centro de Información del WebSphere Application Server y WebSphere Versión 6 Web Services Handbook Development and Deployment en Recursos para explicaciones detalladas para implementar este paso.

Tarea 7: Implementar y probar la unidad de la solución en el entorno de tiempo de ejecución.

Ver el enlace de ayuda de producto Rational Application Developer en Recursos para explicaciones detalladas para implementar este paso.


Trabajar con la aplicación de muestra

En esta sección se explica cómo desplegar las aplicaciones de muestra totalmente implementadas en el entorno de tiempo de ejecución. Para implementar las muestras, se necesita: WebSphere Application Server V6.0 o posterior para ejecutar a aplicación del proveedor. Los entornos de tiempo de ejecución se deben configurar para utilizar la seguridad global, y para utilizar la autenticación Lightweight Third Party Authentication(LTPA) con la misma clave LTPA.

El primer paso para trabajar con la aplicación de muestra, es descargar los archivos proporcionados en sección Download . Estas son:

  • SampleProjects.zip, el cual incluye el código fuente de las aplicaciones de muestra.
  • SampleService.ear, que es el archivo de archivado implementable de la aplicación de proveedor.
  • SampleClient.ear, que es el archivo de archivado implementable de la aplicación de cliente J2EE 1.3.

Ahora está usted listo para tomar cualquiera de las siguientes acciones una vez descargados los archivos proporcionados:

  • Ejecute las aplicaciones del proveedor y el cliente en los sistemas WebSphere Application Server, como se muestra en la Figura 1. Seguir las tareas una a seis para personalizar y ejecutar las aplicaciones de muestra de forma remota como aparece en la siguiente lista.
  • Ejecutar las aplicaciones del proveedor y el cliente en los mismos sistemas WebSphere Application Server . Saltar las tareas de la una a la tres, y seguir las tareas de la cuatro a hasta la seis, como se muestra en la siguiente lista.

Para ejecutar las aplicaciones de muestra de forma local o remota, debe realizar la las siguientes tareas:

  1. Importar el código fuente de las aplicaciones de muestra al espacio de trabajo del Rational Application Developer.
  2. Actualizar los archivos fuente necesarios para reflejar los nombres de host en el entorno de tiempo de ejecución.
  3. Paquete de los componentes de la solución.
  4. Implementar las aplicaciones dentro del ambiente de tiempo de ejecución.
  5. Configurar la seguridad en el WebSphere Application Server.
  6. Ejecutar las aplicaciones de muestra.

El resto de esta sección describe estas tareas en detalle.

Tarea 1: Importar el código fuente de las aplicaciones de muestra

El código fuente para las aplicaciones de muestra, el cual se compone de varios artefactos, como se muestra en la Tabla 3, se encuentra en el archivo SampleProjects.zip (ver el la sección Download ). La función de exportación de intercambio de proyectos del Rational Application Developer se utiliza para exportar el código fuente de la solución en el archivo SampleProjects.zip. Esta función le ayuda a importar el código fuente en otro espacio de trabajo del Rational Application Developer fácilmente, como aquí se muestra:

  1. Haga clic en File > Import, y seleccione Project Interchange.
  2. Haga clic en Next, proporcione la ubicación del archivo comprimido, a continuación seleccione los proyectos suministrados.
Tabla 3. Lista de artefactos de aplicaciones de muestra
ComponenteTipo de proyecto Nombre del proyecto Descripción
Archivo EAR de proveedor de servicios web Archivo EAR SampleService.earEste proyecto incluye la aplicación .xml file.
Punto final de servicios web J2EE 1.3 WebSampleService13WebEste proyecto incluye los archivos web.xml y webservices.xml.
Punto final de servicios web J2EE 1.4WebSampleService14WebEste proyecto incluye los archivos web.xml y webservices.xml.
Biblioteca compartida JavaSampleServiceJAR Este proyecto incluye las siguientes clases de servicios web J2EE 1.4:
  • Una clase Java para el tipo de datos complejos definidas en el WSDL para que se transfieran al y desde el servicio, SampleOperationResponse
  • Una interfaz de servicios web, SampleService_PortType clase
  • Un ubicador de servicio, SampleServiceSOAPImpl clase
Backend EJBEJBSampleEJBServiceEste proyecto incluye el bean de sesión SampleEJBBean.
Backend EJBJavaSampleEJBServiceClient Este proyecto incluye las siguientes clases:
  • Una interfaz inicial remota del bean de sesión SampleEJBHome
  • Una interfaz inicial local del bean de sesión, SampleEJBLocalHome
  • Una interfaz remota del bean de sesión, SampleEJB
  • Una interfaz local del bean de sesión, SampleEJBLocal
cliente J2EE 1.3 WebSampleClient Este proyecto incluye los siguientes dos tipos de clases:
  • Un servlet J2EE 1.3 creado con la especificación Servlet 2.3, SampleServlet2_3
  • Una clase ayudante para el servlet, ProviderAccessBean
Cliente J2EE 1.3 archivo EAR SampleClient.earEste proyecto incluye los archivos web.xml y webservices.xml.

Tarea 2 - 4: Actualización, empaquetado, e implementación de la solución de muestra dentro del tiempo de ejecución

Realizar los siguientes pasos:

  1. El código fuente de la aplicación del cliente debe ser personalizado para reflejar los nombres de host del entorno de tiempo ejecución. Proporcionar un nombre de host en dos de los archivos, como se muestra en la siguiente lista. Para su conveniencia, buscar la cadena de caracteres localhost y reemplazarla con un nombre de host adecuado.
    • La clase ubicador que se encuentra en al proyecto SampleClient, com.test.SampleService_ServiceLocator.java
    • El archivo WSDL ubicado en el directorio META-INF/wsdl del proyecto SampleClient, sampleService.wsdl
  2. Una vez personalizados los archivos necesarios, ya está listo para crear paquetes implementables para el servlet. Implementar el archivo SampleService.ear proporcionado por la aplicación del proveedor de servicios web en WebSphere Application Server, como también el servlet para el cliente, SampleClient.ear.

Tarea 5. Ejecutar la solución de muestra

Ahora está listo para ejecutar la solución siguiendo estos pasos:

  1. Ejecutar el servlet J2EE 1.3 en el que aparece la página de entrada, como se muestra en la Figura 3.
  2. Cuando usted tiene el reto de autenticar en el servlet, hágalo utilizando cualquier ID de usuario que es una parte del registro utilizado para la seguridad global.
  3. Proporcionar una cadena de caracteres de entrada en el campo que aparece en la página, botón Send .
    Figura 3. Página de entrada
    Página de entrada

    El servlet llama al punto final del servicio web J2EE 1.3 con la cadena de caracteres de entrada que se proporciona al EJB backend. Entonces, muestra el resultado devuelto por el EJB backend en una página de salida como aparece en la Figura 4:

    Figura 4. Página de salida
    Página de salida

    El ID de usuario que aparece en la página de salida debe ser el mismo que usted utilizo para autenticarse en el servlet. Si este es el caso, usted puede estar seguro que la identidad del usuario cliente está siendo propagada con éxito a la aplicación de proveedor utilizando WS-Security.


Conclusión

Este artículo le llevo a través de cómo utilizar múltiples puntos finales de servicios web para hacer frente a los problemas de interoperabilidad de nivel de especificación de WS-Security y proporciona ejemplos que muestran cómo hacer frente a algunos de los escollos en torno a trabajar con clases de servicios web comunes. A medida que aprende, este método principalmente un ejercicio de desarrollo de aplicación directa. El enfoque es el más adecuado al recinto de seguridad, prueba, o situaciones de prueba de concepto en las que actualizar las aplicaciones de consumidores de servicios web a J2EE 1.4, no es una opción, y en el que el coste de la configuración de un middleware proxy es prohibitivo.


Descargas

DescripciónNombretamaño
Sample project files for this articleSampleProjects.zip72KB
Sample project files for this articleSampleService.ear74KB
Sample project files for this articleSampleClient.ear104KB

Recursos

Aprender

Obtener los productos y tecnologías

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=SOA y servicios web , tecnologia Java
ArticleID=788810
ArticleTitle=Aborde las especificaciones de interoperabilidad de WS-Security, Parte 4: Añadir un punto final de proveedorJ2EE 1.3 al servicios web J2EE 1.4
publish-date=01302012