Empaquetage d'application JAX-WS

Vous pouvez empaqueter une application JAX-WS (Java™ Application Programming Interface (API) for XML Web Services) comme un service Web. Un service Web JAX-WS est contenu dans un fichier WAR (web archive) ou un module WAR au sein d'un fichier EAR (Enterprise archive).

Un fichier WAR compatible JAX-WS contient les éléments suivants :
  • Un fichier WEB-INF/web.xml
  • Des classes annotées implémentant les services web contenus dans le module d'application
  • [Facultatif] Des documents WSDL (Web Services Description Language) décrivant les services Web contenus dans le module d'application
Un fichier WEB-INF/web.xml est similaire à l'exemple suivant :
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" xmlns=”http://java.sun.com/xml/ns/j2ee”
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
         version="2.4">
</web-app>

Le fichier web.xml peut contenir des éléments de servlet ou de mappage de servlet. Lorsque les personnalisations du fichier web.xml ne sont pas nécessaires, le module d'exécution WebSphere Application Server les définit de façon dynamique lors du chargement du module. Pour plus d'informations sur la configuration du fichier web.xml, consultez la rubrique relative à la personnalisation des modèles d'URL web dans le fichier web.xml des applications JAX-WS.

Les classes annotées doivent contenir au minimum une classe d'implémentation de services web qui inclut l'annotation @WebService. La définition et la spécification des annotations liées aux services web sont fournies par les spécifications JAX-WS et JSR-181. Les classes d'implémentation de services Web peuvent exister dans le répertoire WEB-INF/classes d'un fichier JAR (Java archive) contenu dans le répertoire WEB-INF/lib du fichier WAR.

Vous avez également la possibilité d'inclure des documents WSDL dans le packaging d'application JAX-WS. Si le document WSDL d'un service Web particulier est omis, le module d'exécution WebSphere Application Server construit la définition WSDL de façon dynamique à partir des annotations contenues dans les classes d'implémentation de services Web.

En commençant par WebSphere Application Server version 7.0 et ultérieure, les modules d'application Java EE 5 (modules d'application Web version 2.5 ou ultérieure ou les modules EJB version 3.0 ou ultérieure) sont analysés pour connaître les annotations permettant d'identifier les services et clients JAX-WS. Toutefois, les modules d'application antérieurs à Java EE 5 (modules d'application Web version 2.4 ou antérieure, ou modules EJB version 2.1 ou antérieure) ne font pas l'objet d'une analyse des annotations JAX-WS, par défaut, pour des raisons de performance. Dans la version 6.1 de Feature Pack for Web Services, le comportement par défaut consiste à analyser les modules d'application Web antérieurs à Java EE 5 pour identifier les services JAX-WS et à rechercher dans les modules d'application Web antérieurs à Java EE 5 et dans les modules EJB des clients de service au cours de l'installation de l'application. Dans la mesure où le comportement par défaut de WebSphere Application Server version 7.0 et ultérieure consiste à ne pas rechercher les annotations dans les modules antérieurs à Java EE 5 au cours de l'installation de l'application ou du démarrage du serveur, si vous souhaitez conserver la compatibilité antérieure avec le module de fonctions, vous devez configurer soit la propriété UseWSFEP61ScanPolicy dans l'élément META-INF/MANIFEST.MF d'un fichier WAR ou d'un module EJB, soit définir la propriété personnalisée de machine virtuelle Java, com.ibm.websphere.webservices.UseWSFEP61ScanPolicy, sur les serveurs pour en demander l'analyse pendant l'installation de l'application et le démarrage du serveur. Pour en savoir plus sur l'analyse des annotations, voir les informations relatives aux annotations JAX-WS.

Eviter les incidents Eviter les incidents: Au cours du déploiement des applications de services Web, les annotations ne sont pas recherchées dans les fichiers jar d'utilitaire. Par conséquent, si des services Web sont conditionnés dans des fichiers jar d'utilitaire, ils ne peuvent pas être détectés par le moteur de services Web. Dans ce cas, si l'option Démarrer les composants en fonction des besoins est sélectionnée dans les paramètres de configuration pour le serveur d'applications, les composants de service Web ne peuvent pas être démarrés une fois le serveur d'applications démarré car aucun service Web n'est détecté. Utilisez la propriété personnalisée com.ibm.websphere.webservices.StartWebServicesComponent pour éviter ce problème.gotcha
Eviter les incidents Eviter les incidents: Il est fortement recommandé de regrouper l'interface de noeud final de service (SEI) et les classes d'implémentation de services Web tiers avec l'application/le module. De cette manière, l'interface SEI et les classes d'implémentation sont visibles pour le chargeur de classe d'application de l'application, ce qui empêche l'occurrence d'une exception, telle que la suivante : EndpointInterfaceDescriptionImpl: la superclasse spécifiée pour cette classe est introuvable.

Si l'interface SEI et les classes d'implémentation ne peuvent pas être regroupées avec l'application/le module, il est recommandé de regrouper les fichiers JAR contenant ces classes dans une bibliothèque partagée isolée et d'associer cette dernière à l'application/au module.

gotcha

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_jaxwsapp
Nom du fichier : cwbs_jaxwsapp.html