Spécification Web Services for Java EE
La spécification Web Services for Java™ EE (Java Platform, Enterprise Edition) définit le modèle de programmation et l'architecture d'exécution pour l'implémentation des services Web à l'aide du langage Java. JSR (Java Specification Requirements) 109 est une autre appellation de la spécification Web Services for Java EE. La spécification inclut des normes ouvertes pour le développement et l'implémentation des services Web.
Les services Web pour la spécification Java EE s'appuient sur la technologie Java EE et prennent en charge les modèles de programmation JAX-WS (Java API for XML Web Services) et JAX-RPC (Java API for XML-based RPC) pour des services Web et des clients de telle manière qu'ils soient interopérables et transférables sur plusieurs serveurs d'applications au sein d'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.
Il existe une multitude de manières d'intégrer la technologie Java EE dans les services Web. Vous pouvez exposer des composants Java EE comme des services Web, par exemple, JavaBeans et beans enterprise. Si vous exposez des composants Java EE comme des services Web, des clients écrits en code Java ou des clients de services Web existants qui ne sont pas écrits en code Java peuvent accéder à ces services. Les composants Java EE peuvent également faire office de clients de services Web.
La spécification Web Services for Java EE est la plateforme favorite pour une programmation basée sur le Web car elle fournit des normes ouvertes permettant à différents types de langages, de systèmes d'exploitation et de logiciels de communiquer de manière transparente via Internet.
Pour qu'une application Java opère comme un client de service Web, un mappage doit exister entre le fichier WSDL et l'application Java. 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 pour qu'il accepte les demandes de service.
Le processus complet intégré dépend de 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 du descripteur de déploiement webservices.xml définit l'ensemble des services Web que vous pouvez déployer dans un service Web pour un conteneur activé Java EE.
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. 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.
@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. Pour plus d'informations sur la corrélation entre des valeurs spécifiées dans le fichier du descripteur de déploiement des services Web et les attributs des annotations @WebService et @WebServiceProvider, voir la section 5 de la spécification Web Services for Java EE.
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.
- 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)
Pour obtenir la liste complète des normes et spécifications prises en charge, voir les spécifications des services Web et la documentation des API.