WSDL

WSDL (Web Services Description Language) est un langage de description fondé sur XML (Extensible Markup Language). Il a été soumis au W3C (World Wide Web Consortium) comme standard industriel pour la description des services Web. WSDL tire sa puissance de deux principes architecturaux principaux : la possibilité de décrire un ensemble d'opérations métier et la possibilité de séparer la description entre deux unités de base. Ces unités fournissent une description des opérations et les détails du mode d'intégration de l'opération et des informations qui lui sont associées.

Un document WSDL définit des services en tant que collections de points de contact de réseau ou de ports. Dans WSDL, les définitions abstraites des points de contact (endpoints) et des messages sont séparées de leur déploiement réseau concret ou des liaisons de format de données. Ainsi, la réutilisation des définitions abstraites est possible : messages, qui sont des descriptions abstraites des données échangées et types de ports, qui sont des collections abstraites d'opérations. Les spécifications de format de données et de protocole concret pour un type de port particulier constituent une liaison réutilisable. Un port est défini en associant une adresse réseau à une liaison réutilisable et une collection de ports définit un service. C'est pourquoi, un document WSDL est composé de plusieurs éléments.

La structure d'informations dans un fichier WSDL est la suivante : Structure d'un fichier WSDL

Un fichier WSDL contient les éléments suivants :
  • La définition d'interface de service Web

    Elle contient les éléments et les espaces de nom.

  • Implémentation de service Web

    Elle contient la définition du service et des ports.

Un fichier WSDL décrit un service Web avec les éléments suivants :

Elément portType

Description des opérations et des messages associés. Les éléments portType définissent les opérations abstraites.

<portType name="EightBall">
  <operation name="getAnswer">
    <input message="ebs:IngetAnswerRequest"/>
    <output message="ebs:OutgetAnswerResponse"/>
  </operation>
</portType>

message

Description des paramètres input et output et des valeurs de retour.

<message name="IngetAnswerRequest">
  <part name="meth1_inType" type="ebs:questionType"/>
</message>
<message name="OutgetAnswerResponse">
  <part name="meth1_outType" type="ebs:answerType"/>
</message>

types

Schéma de description des types XML utilisés dans les messages.

<types>
  <xsd:schema targetNamespace="...">
    <xsd:complexType name="questionType">
      <xsd:element name="question" type="string"/>
    </xsd:complexType>
    <xsd:complexType name="answerType">
    ...
</types>

liaison

Les éléments binding décrivent le protocole utilisé pour accéder à un portType ainsi que les formats de données pour les messages définis par un élément portType particulier.

<binding name="EightBallBinding" type="ebs:EightBall">
  <soap:binding style="rpc" transport="schemas.xmlsoap.org/soap/http">
  <operation name="ebs:getAnswer">
  <soap:operation soapAction="urn:EightBall"/>
    <input>
      <soap:body namespace="urn:EightBall" ... />
      ...

Service

Les services et les ports définissent l'emplacement du service Web.

Le service contient le nom du service Web et une liste des ports.

Ports

Les ports contiennent l'emplacement du service Web et la liaison utilisée pour accéder à ce service.
<service name="EightBall">
  <port binding="ebs:EightBallBinding" name="EightBallPort">
    <soap:address location="localhost:8080/axis/EightBall"/>
  </port>
</service>

Pour créer des services Web JAX-WS (Java™ API for XML Web Services) ou JAX-RPC (Java API for XML-based RPC), vous pouvez utiliser une approche de développement ascendant lorsque vous démarrez à partir de JavaBeans ou d'un bean enterprise. Vous pouvez également utiliser une approche de développement descendante lorsque vous démarrez à partir d'un fichier WSDL existant.

Lors de la création de services Web JAX-WS pour ce produit, vous pouvez démarrer à l'aide d'un fichier WSDL ou d'une classe de bean d'implémentation. Si vous démarrez à l'aide d'une classe de bean d'implémentation, utilisez l'outil de ligne de commande wsgen pour générer tous les artefacts de serveur de services Web, y compris un WSDL, le cas échéant. Si vous démarrez à l'aide d'un WSDL, utilisez l'outil de ligne de commande wsimport pour générer tous les artefacts de services Web du serveur ou du client.

Lors de la création de services Web JAX-RPC pour ce produit, vous devez en premier lieu disposer d'un bean d'implémentation qui inclut une interface SEI (service endpoint interface). Ensuite, vous utilisez l'outil de ligne de commande Java2WSDL pour créer un fichier WSDL qui définit les services Web. Si vous démarrez à l'aide du fichier WSDL pour générer la classe de bean d'implémentation, exécutez l'outil de ligne de commande WSDL2Java sur le fichier WSDL pour créer des API Java et des modèles de descripteur de déploiement.

Fichiers WSDL à plusieurs parties et publication WSDL

Le produit prend en charge le déploiement des services Web à l'aide d'un fichier WSDL à plusieurs parties. Dans des fichiers WSDL à plusieurs parties, un fichier WSDL d'implémentation contient le wsdl:service. Ce fichier d'implémentation WSDL importe un fichier d'interface WSDL qui contient d'autres structures WSDL. Il prend en charge plusieurs services Web à l'aide de la même définition d'interface WSDL.

L'élément <wsdl:import> indique une référence à un autre fichier WSDL. Si l'attribut d'emplacement de l'élément <wsdl:import> ne contient pas d'URL, c'est-à-dire qu'il contient uniquement un nom de fichier et ne commence pas par http://, https:// ou file://, le fichier importé doit être placé dans le même répertoire et ne doit pas contenir de composant de chemin relatif. Par exemple, si META-INF/wsdl/A_Impl.wsdl se trouve dans votre module et contient l'instruction d'importation <wsdl:import="A.wsdl" namespace="..."/> instruction d'importation, le fichier, A.wsdl doit également se trouver dans le répertoire META-INF/wsdl du module.

Il est recommandé de placer tous les fichiers WSDL dans le répertoire META-INF/wsdl, si vous utilisez EJB (Enterprise JavaBeans), ou le répertoire WEB-INF/wsdl, si vous utilisez les composants JavaBeans, même si les importations relatives se trouvent dans les fichiers WSDL. Sinon, il existe des implications avec la publication WSDL lorsque vous utilisez un chemin du type suivant <location="../interfaces/A_Interface.wsdl"namespace="..."/>. L'utilisation d'un tel chemin échoue en raison de la présence du chemin d'accès relatif, que le fichier figure ou non dans le chemin. Si l'emplacement est une adresse Web, elle doit être lisible au déploiement et au démarrage du serveur.

Les fichiers situés dans le répertoire META-INF/wsdl ou WEB-INF/wsdl peuvent être publiés via une adresse URL ou un fichier, fichiers WSDL ou XSD (XML Schema Definition Language) inclus. Par exemple, si le fichier référencé dans l'élément <wsdl-file> du descripteur de déploiement webservices.xml se trouve dans le répertoire META-INF/wsdl ou WEB-INF/wsdl, il peut être publié. Si les fichiers importés par <wsdl-file> se trouvent dans le répertoire wsdl/ ou l'un de ses sous-répertoires, ils peuvent être publiés.

Si le fichier WSDL référencé par l'élément <wsdl-file> se trouve dans un autre répertoire que wsdl, ou dans l'un de ses sous-répertoires, le fichier et ses fichiers importés (fichiers WSDL ou XSD), qui sont dans le même répertoire, sont copiés dans le répertoire wsdl sans modification lorsque l'application est installée. Ces types de fichiers peuvent être également publiés.

Si <wsdl-file> importe un fichier qui se trouve dans un autre répertoire que -INF/wsdl ou un sous-répertoires), le fichier n'est pas copié dans le répertoire et wsdl et ne peut pas être publié.

Pour les services Web JAX-WS, vous pouvez utiliser une annotation pour spécifier l'emplacement du WSDL. Utilisez l'annotation @WebService avec l'attribut WSDLLocation. L'attribut WSDLLocation est facultatif. S'il n'est pas spécifié, WSDL est généré et publié à partir des informations détectées dans les classes de services Web. Vous pouvez éventuellement spécifier l'emplacement du fichier WSDL dans le descripteur de déploiement webservices.xml. Cependant, toutes les informations que vous définissez dans le descripteur de déploiement webservices.xml remplacent les informations correspondantes spécifiées par les annotations.


Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wsdl
Nom du fichier : cwbs_wsdl.html