Spécification Web Services for Java EE

La spécification Web Services for Java™ Platform, Enterprise Edition (Java EE) définit le modèle de programmation et l'architecture d'exécution pour l'implémentation de services Web basés sur le langage Java. Un autre nom de la spécification Web Services for Java EE est JSR (Java Specification Requirements) 109. La spécification inclut des normes ouvertes pour le développement et l'implémentation des services Web.

La spécification Web Services for Java EE est basée sur la technologie Java EE et prend en charge le modèle de programmation JAX-WS (Java API for XML Web Services) et JAX-RPC (Java API for XML-based RPC) pour les services Web et les clients d'une manière interopérable et portable entre les serveurs d'applications dans des environnements évolutifs et sécurisés. Basée sur des normes de l'industrie à l'adresse des services Web, y compris WSDL (Web Services Description Language) et SOAP, cette spécification décrit le développement et le déploiement de services Web.

Vous pouvez intégrer la technologie Java EE à des services Web de différentes manières. Vous pouvez exposer des composants Java EE en tant que services Web, par exemple JavaBeans et beans enterprise. Lorsque vous exposez des composants Java EE en tant que services Web, les clients écrits en code Java ou les clients de service Web existants qui ne sont pas écrits en code Java peuvent accéder à ces services. Les composants Java EE peuvent également agir en tant que clients de service Web.

La spécification Web Services for Java EE est la plateforme privilégiée pour la programmation Web car elle fournit des normes ouvertes permettant à différents types de langages, systèmes d'exploitation et logiciels de communiquer de manière transparente via Internet.

Pour qu'une application Java agisse en tant que client de service Web, un mappage entre le fichier WSDL et l'application Java doit exister. Pour des applications JAX-WS, le mappage est défini à l'aide des annotations. Vous pouvez à la rigueur utiliser le descripteur de déploiement webservices.xml pour spécifier l'emplacement du fichier WSDL et remplacer la valeur définie dans l'annotation @WebServices. Pour des applications JAX-RPC, vous devez définir le fichier de mappage JAX-RPC. Pour plus d'informations sur le mappage défini entre le fichier WSDL et votre application de services Web, voir la spécification JAX-WS ou la spécification JAX-RPC dans les spécifications de services Web et la documentation API selon le modèle de programmation utilisé.

Vous pouvez utiliser un composant Java pour implémenter un service Web en spécifiant les informations de l'interface du composant et de liaisons du fichier WSDL et en créant l'infrastructure du serveur d'applications afin qu'il accepte les demandes de service.

L'ensemble de ce processus est basé sur la spécification Web Services for Java EE .

La spécification définit le descripteur de déploiement webservices.xml spécifiquement pour des services Web. Le fichier descripteur de déploiement webservices.xml définit l'ensemble de services Web que vous pouvez déployer dans un conteneur Web Services for Java EE activé.

Pour les services Web JAX-WS, l'utilisation du descripteur de déploiement webservices.xml est facultatif car vous pouvez utiliser des annotations pour spécifier toutes les informations contenues dans le fichier de descripteur de déploiement. Vous pouvez utiliser ce fichier pour augmenter ou remplacer des annotations JAX-WS existantes. Toute information que vous définissez dans le descripteur de déploiement webservices.xml remplace toute information correspondante spécifiée par des annotations.

Par exemple, si votre classe d'implémentation de services pour vos services Web JAX-WS inclut l'annotation @WebService comme suit :
@WebService(wsdlLocation="http://myhost.com/location/of/the/wsdl/ExampleService.wsdl")
et si webservices.xml indique un nom de fichier différent pour le document WSDL comme suit :
<webservices>
<webservice-description>
<webservice-description-name>ExampleService</webservice-description-name>
<wsdl-file>META-INF/wsdl/ExampleService.wsdl</wsdl-file>
...
</webservice-description>
</webservices>
, la valeur spécifiée dans le descripteur de déploiement, META-INF/wsdl/ExampleService.wsdl remplace ensuite la valeur de l'annotation.

Voir la section 5 de la spécification Web Services for Java EE pour plus de détails sur la corrélation entre les valeurs spécifiées dans le fichier descripteur de déploiement des services Web et les attributs des annotations @WebService et @WebServiceProvider.

S'agissant de services JAX-RPC, vous devez définir les caractéristiques de déploiement dans le fichier du descripteur de déploiement webservices.xml.

Les éléments que vous devez définir pour ce descripteur de déploiement sont les suivants :
  • Nom du port
  • Implémentation du service de port
  • Interface de noeud final (endpoint) du service de port
  • Définition WSDL du port
  • QName de port
  • Support MTOM/XOP pour des services Web JAX-WS
  • Liaison de protocole pour des services Web JAX-WS
  • Mappage JAX-RPC
  • Gestionnaires (facultatif)
  • Gestionnaire de servlets (facultatif)
La spécification Enterprise JavaBeans (EJB) 2.1 indique que si vous développez un service Web à partir d'un bean de session, le descripteur de déploiement EJB ejb-jar.xml doit contenir l'élément service-endpoint. La valeur de service-endpoint doit correspondre à celle définie dans le descripteur de déploiement webservices.xml.

Pour obtenir la liste complète des normes et spécifications prises en charge, voir la documentation relative aux spécifications et API de services Web.