Generación de artefactos de Java para aplicaciones JAX-WS desde un archivo WSDL

Utilice las herramientas JAX-WS para generar los artefactos de Java™ necesarios para desarrollar los servicios web JAX-WS cuando se empieza con un archivo WSDL.

Antes de empezar

Cuando se utiliza un enfoque de desarrollo descendente para desarrollar servicios web JAX-WS (API de Java para servicios web basados en XML) empezando con un archivo WSDL (Web Services Description Language), debe obtener el URL (localizador universal de recursos) del archivo WSDL.

[Windows][z/OS]Si el archivo WSDL es un archivo local, el URL se parecerá a este ejemplo: archivo:unidad:\víaacceso\nombre_archivo.wsdl.

[Linux][AIX][HP-UX][Solaris][IBM i]Si el archivo WSDL es un archivo local, el URL se parecerá a este ejemplo: archivo:/víaacceso/nombre_archivo.wsdl.

También se pueden especificar los archivos locales con la vía de acceso del archivo absoluta o relativa.

Acerca de esta tarea

Puede utilizar la herramienta JAX-WS, wsimport, para procesar un archivo WSDL y generar artefactos Java portátiles que se utilizan para crear un servicio web. Los artefactos Java portátiles creados utilizando la herramienta wsimport son:
  • Interfaz de punto final de servicio (SEI)
  • Clase de servicio
  • Clase de excepción que se correlaciona desde la clase wsdl:fault (en caso de haberla)
  • Valores del tipo generado JAXB (arquitectura Java para enlaces XML) que son clases Java correlacionadas desde tipos de esquema XML
Supported configurations Supported configurations: Las herramientas de línea de mandatos wsimport, wsgen, schemagen y xjc no tienen soporte en la plataforma z/OS. Esta funcionalidad la proporcionan las herramientas de ensamblaje proporcionadas con WebSphere Application Server que se ejecutan en la plataforma z/OS. Obtenga información sobre estas herramientas de línea de mandatos para las aplicaciones JAX-WS para obtener más información sobre estas herramientas. sptcfg
Best practice Best practice: WebSphere Application Server proporciona la API Java para servicios web basados en XML (JAX-WS) y las herramientas de arquitectura Java para enlaces XML (JAXB). Las herramientas de línea de mandatos wsimport, wsgen, schemagen y xjc se encuentran en el directorio raíz_servidor_aplicaciones\bin\ de WebSphere Application Server tradicional. Los mandatos xjc y schemagen se encuentran en el directorio raíz_servidor_aplicaciones\jaxb\bin\ del perfil Liberty. En algunas ocasiones, los artefactos generados por las herramientas que proporcionan WebSphere Application Server y JDK dan soporte a los mismos niveles de las especificaciones. En general, los artefactos generados por las herramientas JDK tienen portabilidad en otros entornos de ejecución compatibles. Sin embargo, es más recomendable utilizar las herramientas que se proporcionan con este producto para alcanzar una integración sin interrupciones dentro del entorno de WebSphere Application Server y aprovechar las características que puedan estar soportadas únicamente en WebSphere Application Server. Para aprovechar las herramientas de JAX-WS y JAXB V2.2, utilice las herramientas que se proporcionan con el servidor de aplicaciones y que se encuentran en el directorio raíz_servidor_aplicaciones\bin\.bprac

Además de utilizar las herramientas de la línea de mandatos, puede invocar estas herramientas JAX-WS desde los entornos de compilación Ant. Utilice la tarea Ant com.sun.tools.ws.ant.WsImport desde el entorno de compilación Ant para invocar la herramienta wsimport. Para que funcione debidamente, esta tarea Ant requiere que se invoque Ant mediante el script ws_ant.

Procedimiento

Ejecute el mandato wsimport para generar los artefactos de cliente portátiles. La herramienta wsimport se encuentra en el directorio raíz_servidor_aplic\bin\.
[Windows]
raíz_servidor_aplicaciones\bin\wsimport.bat URL_wsdl 
[AIX][HP-UX][Linux][Solaris]
raíz_servidor_aplicaciones/bin/wsimport.sh wsdl_URL
[IBM i]
raíz_servidor_aplicaciones/bin/wsimport wsdl_URL
(Opcional) Utilice las opciones siguientes con el mandato wsimport:
  • Utilice la opción -verbose para ver una lista de archivos generados, cuando ejecute el mandato.
  • Utilice la opción -keep para guardar los archivos Java generados.
  • Utilice la opción -wsdlLocation para especificar la ubicación del archivo WSDL.
    Best practice Best practice: Un método recomendado para asegurarse de que produce un archivo EAR (archivador empresarial) de cliente de servicios web JAX-WS que se puede transferir a otros sistemas es empaquetar el documento WSDL en el módulo de aplicación como, por ejemplo, un archivo JAR (archivador Java) del cliente de servicios web o un archivo WAR (archivador de aplicación web). Puede especificar un URI relativo para la ubicación del archivo WSDL mediante el atributo de anotación -wsdllocation. Por ejemplo, si el archivo MiServicio.wsdl se encuentra en el directorio META-INF/wsdl/, ejecute la herramienta wsimport y utilice la opción -wsdllocation para especificar el valor que debe utilizarse para la ubicación del archivo WSDL. Esto garantiza que el artefacto generado contenga la información de -wsdllocation correcta necesaria cuando la aplicación se carga en la consola administrativa; por ejemplo:
    wsimport -keep -wsdllocation=META-INF/wsdl/MyService.wsdl
    bprac
  • Utilice la opción -b si está utilizando WSDL o las personalizaciones de esquema para especificar archivos de enlace externos que contengan las personalizaciones.

    Puede personalizar los enlaces en el archivo WSDL para habilitar las conexiones o correlaciones asíncronas. Para generar interfaces asíncronas, añada la declaración del enlace enableAsyncMapping de personalización sólo del lado del cliente al elemento wsdl:definitions o en un archivo de enlace externo definido en el archivo WSDL. Utilice la declaración de enlace enableMIMEContent en el cliente personalizado o el archivo de enlace del servidor para habilitar o inhabilitar las reglas de correlación predeterminadas mime:content. Si desea información adicional sobre las declaraciones de enlace personalizadas, consulte el capítulo 8 de la especificación JAX-WS.

Obtenga información sobre el mandato wsimport para conocer mejor este mandato y las opciones adicionales que se pueden especificar.

Resultados

Tiene los artefactos Java necesarios para crear un servicio web JAX-WS. Para obtener más información sobre el uso, la sintaxis y los parámetros del mandato wsimport, consulte el mandato wsimport para la documentación de aplicaciones JAX-WS.

Ejemplo

En el ejemplo siguiente se muestra cómo se utiliza el mandato wsimport para procesar el archivo WSDL de ping de ejemplo para generar artefactos portátiles.
  1. Copie el siguiente archivo WSDL ping.wsdl en un directorio temporal.
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
     * Este programa se puede utilizar, ejecutar, copiar, modificar y distribuir
     * sin derechos de copia para fines de desarrollo, uso, comercialización o distribución.
     -->
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    	xmlns:tns="http://com/ibm/was/wssample/sei/ping/"
    	xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="PingService"
    	targetNamespace="http://com/ibm/was/wssample/sei/ping/">
    	<wsdl:types>
    		<xsd:schema
    			targetNamespace="http://com/ibm/was/wssample/sei/ping/"
    			xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    
    
    			<xsd:element name="pingStringInput">
    				<xsd:complexType>
    					<xsd:sequence>
    						<xsd:element name="pingInput" type="xsd:string" />
    					</xsd:sequence>
    				</xsd:complexType>
    			</xsd:element>
    		</xsd:schema>
    	</wsdl:types>
    	<wsdl:message name="pingOperationRequest">
    		<wsdl:part element="tns:pingStringInput" name="parameter" />
    	</wsdl:message>
    	<wsdl:portType name="PingServicePortType">
    		<wsdl:operation name="pingOperation">
    			<wsdl:input message="tns:pingOperationRequest" />
    
    		</wsdl:operation>
    	</wsdl:portType>
    	<wsdl:binding name="PingSOAP" type="tns:PingServicePortType">
    		<soap:binding style="document"
    			transport="http://schemas.xmlsoap.org/soap/http" />
    		<wsdl:operation name="pingOperation">
    			<soap:operation soapAction="pingOperation" style="document" />
    			<wsdl:input>
    				<soap:body use="literal" />
    			</wsdl:input>
    		</wsdl:operation>
    	</wsdl:binding>
    	<wsdl:service name="PingService">
    		<wsdl:port binding="tns:PingSOAP" name="PingServicePort">
    			<soap:address
    				location="http://localhost:9080/WSSampleSei/PingService" />
    		</wsdl:port>
    	</wsdl:service>
    </wsdl:definitions>
  2. Ejecute el mandato wsimport desde el directorio raíz_servidor_aplicaciones\bin\.
    [Windows]
    raíz_serv_apl\bin\wsimport.bat -keep -verbose ping.wsdl
    [Linux][AIX][HP-UX][Solaris]Los sistemas operativos, como AIX o Linux incluyen el script de origen como el shell principal para heredar las variables exportadas ejecutando el mandato siguiente:
    . ./setupCmdLine.sh  (Observe que hay un espacio entre los puntos.)
    desde el directorio /raíz_servidor_aplicaciones>/bin. Ejecute el mandato wsimport,
    raíz_servidor_aplicaciones/bin/wsimport.sh -keep -verbose ping.wsdl 
    [IBM i]
    raíz_servidor_aplicaciones/bin/wsimport -keep -verbose ping.wsdl
Tras generar los archivos de plantilla utilizando el mandato wsimport, se generan los archivos siguientes:
com\ibm\was\wssample\sei\ping\ObjectFactory.java
com\ibm\was\wssample\sei\ping\package-info.java
com\ibm\was\wssample\sei\ping\PingServicePortType.java
com\ibm\was\wssample\sei\ping\PingStringInput.java
com\ibm\was\wssample\sei\ping\PingService.java

El archivo ObjectFactory.java contiene métodos de fábrica para cada interfaz de contenido Java y cada interfaz de elemento Java generado en el paquete de ping asociado. El archivo package-info.java toma el valor targetNamespace y crea la estructura de directorio. El archivo PingServicePortType.java es la clase de SEI (interfaz de punto final de servicio) generada que contiene la definición del método ping. El archivo PinStringInput.java contiene los valores del tipo de JAXB generados que son clases Java correlacionadas desde los tipos de esquema XML. El archivo PingService.java se la clase del proveedor de servicios generada que el cliente JAX-WS utiliza.

Qué hacer a continuación

Complete la implementación de la aplicación de servicio web completando la implementación de JavaBeans o de enterprise beans.

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxwsfromwsdl
File name: twbs_jaxwsfromwsdl.html