< Anterior | Siguiente >

Lección 2: Crear un servicio web

En esta lección aprenderá a crear el servicio web de libreta de direcciones Java™ descendente a partir del archivo WSDL importado en la lección anterior.

Antes de empezar, debe completar la Lección 1: Creación de un servidor y un proyecto web.
  1. Cambie a la perspectiva Java EE: Ventana > Abrir perspectiva >Otros > Java EE.
  2. En la vista Explorador empresarial, seleccione el archivo WSDL que ha importado en la lección anterior.
  3. Pulse con el botón derecho el WSDL y seleccione Servicios web > Generar esqueleto de bean Java.
  4. Página Servicios web: seleccione Servicio web de bean Java descendente como tipo de servicio web y asegúrese de que AddressBook.wsdl se establezca como la definición de servicio. Elija las opciones siguientes:
    1. Seleccione las etapas de desarrollo de servicios web que desea completar utilizando el control deslizante. El control deslizante establece los valores predeterminados en el resto de páginas del asistente, pero puede alterar temporalmente los valores predeterminados en cada página a medida que avance. Para esta guía de aprendizaje, seleccione Iniciar servicio. Como resultado, se crea todo el código necesario para el servicio web. Despliéguelo en el servidor e intente volver a iniciar el servidor.
    2. Seleccione el servidor: pulse el enlace del servidor y asegúrese de que el servidor WebSphere v8 esté seleccionado.
    3. Seleccione el tiempo de ejecución: asegúrese de que el tiempo de ejecución JAX-WS de IBM® esté seleccionado.
    4. Seleccione el proyecto de servicio: seleccione el proyecto jwsAddressBook que creado en la lección anterior.
    5. Seleccione el proyecto EAR de servicio: seleccione el proyecto jwsAddressBookEAR que creado en la lección anterior.
    6. El cliente se creará más adelante, por lo tanto, asegúrese de que el control deslizante del cliente esté establecido en Sin cliente.
    Pulse Siguiente.
  5. Página Configuración de servicio web descendente de JAX-WS de WebSphere:
    • Carpeta de salida: acepte la ubicación predeterminada donde se generará el esqueleto Java: jwsAddressBook/src.
    • Paquete de destino: acepte el nombre de paquete predeterminado
    • Habilitar estilo de envoltura: habilita la correlación de estilos de envoltura de WSDL con Java. Para los documentos WSDL que implementan un patrón envuelto de documento/literal, se declara un elemento raíz en el esquema XML y se utiliza como una envoltura de operación para un flujo de mensajes. Existen diferentes definiciones de elementos de envoltura para la solicitud y la respuesta. Acepte el valor predeterminado.
    • Habilitar soporte MTOM: si selecciona este recuadro de selección, se habilita el mecanismo de optimización de transmisión de mensajes SOAP para optimizar la transmisión de contenido binario. Acepte el valor predeterminado.
    • Versión de código JAX-WS que se va a generar: a partir de WebSphere Application Server v8.0, puede generar código compatible con JAX-WS 2.1. Seleccione 2.1 para esta guía de aprendizaje.
    • Copiar WSDL en el proyecto: seleccione esta opción para copiar el archivo WSDL en el proyecto de servicio. Como creará el cliente más adelante, seleccione este recuadro de selección.
    • Generar clases JAXB serializables: En WebSphere Application Server v7.0 y posteriores, cuando habilita la faceta Java 6, puede optar por generar las clases JAXB que implementan java.io.Serializable. El estado de las clases que no implementan esta interfaz no se serializará ni deserializará. No seleccione esta opción para la guía de aprendizaje.
    • Especificar archivos de enlace JAX-WS o JAXB: permite utilizar los archivos de enlace personalizados JAX-WS o JAXB. No seleccione esta opción para la guía de aprendizaje.
    • Personalizar nombre de clase de implementación de servicio: permite cambiar la correlación predeterminada de nombres de puerto con nombres de clase de implementación de servicio. No seleccione esta opción para la guía de aprendizaje.
    • Generar biblioteca de esquemas: si selecciona esta opción, ejecutará el esquema JAX-WS en el compilador Java para generar un esquema. No seleccione esta opción para la guía de aprendizaje.
    • Generar descriptor de despliegue de servicio web: para los servicios web JAX-WS, el tiempo de ejecución genera dinámicamente la información de despliegue; ya no son necesarios los descriptores de despliegue estáticos. La selección de este recuadro de selección los generará. Esta guía de aprendizaje no requiere descriptores de despliegue.
    Pulse Siguiente.
Se genera todo el código necesario para el servicio web

Adición de la lógica empresarial al bean de esqueleto

El bean de implementación de esqueleto generado por el asistente de servicio web AddressBookPortImpl.java no contiene ninguna lógica empresarial. Sí contiene la anotación @javax.jws.WebService, que indica al tiempo de ejecución que es un servicio web JAX-WS.

Para poder crear la función de servicio web de libreta de direcciones según lo esperado, debe añadir código a este bean. Debe abrirse en un editor automáticamente después de generar el servicio web, pero si no, puede encontrarse en: jwsAddressBook/Java Resources/src/com.addressbook.

  1. Sustituya el método saveAddress actual:
        public boolean saveAddress(PersonType person) {
            return false;
        }
    por el siguiente método y campo estático:
    	private static Hashtable<String,AddressType> addresses = new Hashtable<String,AddressType>();
        public boolean saveAddress(PersonType person) {
        	addresses.put(person.getName(),person.getAddress());
            return true;
        }
  2. Sustituya el método findAddress actual:
        public AddressType findAddress(String name) throws FindAddressFault {
            return null;
        }
    por lo siguiente:
        public AddressType findAddress(String name) throws FindAddressFault {
            return addresses.get(name);
        }
  3. Pueden aparecer varios marcadores de error. Para corregirlos, organice las importaciones pulsando Control+Mayús+o. Seleccione la importación de java.util.Hashtable. Como resultado, los errores deben aparecer atenuados.
  4. Guarde el bean de implementación actualizado.

Pruebe del servicio web utilizando el cliente de servicio genérico

El cliente de servicio genérico permite probar un servicio web sin la creación de un cliente. Seleccione la operación que desea probar, especifique la información necesaria y el resultado aparecerá en el panel Estado.
  1. Seleccione el archivo WSDL generado jwsAddressBook/WebContent/WEB-INF/wsdl/AddressBook.wsdl, pulse con el botón derecho y seleccione Servicios web > Probar con cliente de servicio genérico. De manera alternativa, puede seleccionar el servicio en el nodo Servicios del proyecto o el nodo Servicios web JAX-WS en la vista Servicios, e iniciar el cliente de servicio genérico desde ahí.
  2. Seleccione la operación SaveAddress.
  3. Especifique los valores en cada uno de los campos y pulse Invocar.
  4. Seleccione la operación FindAddress.
  5. Especifique el nombre que ha elegido al invocar la operación saveAddress y pulse Invocar.
  6. La información que ha guardado en este nombre se mostrará en el panel Estado.

Punto de comprobación de la lección

Ahora ya está preparado para comenzar la Lección 3: Creación del cliente de servicio web.

< Anterior | Siguiente >
Icono que indica el tipo de tema Tema de lección de guía de aprendizaje
Términos y condiciones para centros de información | Comentarios

Icono de indicación de fecha y hora Última actualización: 22 de abril de 2014

Nombre de archivo: jaxwstd_exercise12.html