Annotations JAX-WS

JAX-WS (Java™ API for XML-Based Web Services) s'appuie sur l'utilisation d'annotations pour spécifier les métadonnées associées aux implémentations de services Web et pour simplifier le développement de services Web. Les annotations décrivent la façon dont une implémentation de service côté serveur est accessible sous la forme d'un service Web ou comment une classe Java côté client accède aux services Web.

La norme de programmation JAX-WS introduit le support d'annotation de classes Java à l'aide des métadonnées permettant de définir une application de point de contact de service sous la forme d'un service Web, ainsi que la façon dont un client peut accéder au service Web. JAX-WS prend en charge l'utilisation d'annotations basées sur la fonction Metadata Facility pour la spécification Java Programming Language (JSR) 175, la spécification Web Services Metadata for Java Platform (JSR 181) et les annotations définies par la spécification JAX-WS 2.0 et ultérieure (JSR 224) qui inclut des annotations JAXB. En utilisant des annotations de la norme JSR 181, vous pouvez simplement annoter la classe d'implémentation de service ou l'interface de service pour que l'application soit activée sous la forme d'un service Web. L'utilisation d'annotations dans la source simplifie le développement et le déploiement de services Web via la définition de quelques-unes des informations supplémentaires qui sont généralement extraites des fichiers descripteurs de déploiement, des fichiers WSDL ou du mappage de métadonnées des fichiers XML et WSDL vers les artefacts source.

Utilisez les annotations pour configurer des liaisons, des chaînes de gestionnaires, des noms définis de type de port (portType), de service et d'autres paramètres WSDL. Les annotations sont utilisées dans le cadre du mappage de Java vers WSDL et les schémas, ainsi qu'au moment de l'exécution pour contrôler la façon dont le module d'exécution JAX-WS traite les appels de service Web et répond à ces derniers.

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.

A partir de WebSphere® Application Server version 7.0 et versions ultérieures, les modules d'application Java EE 5 (modules d'application Web version 2.5 ou ultérieure, ou modules EJB version 3.0 ou ultérieure) sont analysés pour détecter les annotations afin d'identifier les services et clients JAX-WS. Toutefois, les modules d'application antérieurs à Java EE 5 (les modules d'applications web version 2.4 ou antérieure ou les modules EJB version 2.1 ou antérieure) ne sont pas analysés pour connaître les annotations JAX-WS, par défaut, pour des considérations liées aux performances.

Dans la version 6.1 Feature Pack for Web Services, le comportement par défaut consiste à analyser les modules d'application Web antérieurs à Java Platform, Enterprise Edition (Java EE) 5 pour identifier les services JAX-WS et à analyser les modules d'application Web antérieurs àJava EE 5 et les modules EJB pour les clients de service lors de l'installation de l'application. Etant donné que le comportement par défaut de WebSphere Application Server version 7.0 et versions ultérieures consiste à ne pas rechercher d'annotations dans les modules antérieurs àJava EE 5 lors de l'installation de l'application ou du démarrage du serveur, afin de préserver la compatibilité en amont avec le module de fonctions des éditions précédentes, vous devez configurer l'une des propriétés suivantes:
  • Vous pouvez définir la propriété UseWSFEP61ScanPolicy dans META-INF/MANIFEST.MF d'un fichier WAR ou d'un module EJB dans true. Par exemple :
    Manifest-Version: 1.0
    UseWSFEP61ScanPolicy: true
    Lorsque cette propriété est définie sur true dans META-INF/MANIFEST.MF du module, le module est analysé pour les annotations JAX-WS quelle que soit la version Java EE du module. La valeur par défaut est false et lorsque la valeur par défaut est en vigueur, les annotations JAX-WS ne sont prises en charge que dans les modules dont la version est Java EE 5 ou ultérieure.
  • Vous pouvez définir la propriété com.ibm.websphere.webservices.UseWSFEP61ScanPolicy personnalisée de la machine virtuelle Java ( JVM ) à l'aide de la console d'administration. Reportez-vous à la documentation relative aux propriétés personnalisées de la JVM pour connaître le chemin de navigation correct à utiliser. Pour demander la numérisation des annotations dans tous les modules, quelle que soit leur version d' Java EE, définissez la propriété com.ibm.websphere.webservices.UseWSFEP61ScanPolicy personnalisée sur true. Vous devez modifier la définition sur chaque serveur requérant une modification du comportement par défaut.
Si la propriété est définie dans un fichier META-INF/MANIFEST.MF de module, cette définition remplace la propriété personnalisée de la JVM sur le serveur. Lors de l'utilisation de l'une ou l'autre propriété, vous devez établir le comportement de recherche d'annotations souhaité avant que l'application ne soit installée. Vous ne pouvez pas modifier de façon dynamique le comportement de la recherche une fois l'application installée. Si des modifications du comportement sont requises une fois l'application installée, vous devez d'abord désinstaller l'application, spécifier le comportement de recherche souhaité à l'aide de la propriété adaptée, puis réinstaller l'application. Lors de la fédération de noeuds dont la propriété com.ibm.websphere.webservices.UseWSFEP61ScanPolicy a pour valeur true dans la configuration des serveurs contenus dans le noeud, cette propriété n'affecte pas le gestionnaire de déploiement. Vous devez attribuez la valeur true à cette propriété sur le gestionnaire de déploiement avant que le noeud soit fédéré afin de conserver le comportement tel qu'il était sur le noeud avant fédération.
[z/OS]
Évitez les problèmes : si cette propriété JVM est utilisée sur la plate-forme z/OS®, elle doit être définie à la fois dans les régions servante et de contrôle du serveur.
Evitez les problèmes: Lorsque vous fédérez des noeuds dont le paramètre com.ibm.websphere.webservices.UseWSFEP61ScanPolicy est défini sur true dans la configuration des serveurs contenus dans le noeud, cela n'affecte pas le gestionnaire de déploiement. Vous devez attribuez la valeur true à cette propriété sur le gestionnaire de déploiement avant que le noeud soit fédéré si vous souhaitez conserver le comportement tel qu'il était sur le noeud avant fédération.
Les annotations prises en charge par JAX-WS sont répertoriées dans le tableau ci-dessous. La cible des annotations est applicable pour les objets Java suivants :
  • types, tels que classe Java, énumération ou interface
  • Méthodes
  • zones représentant des variables d'instance locales dans une classe Java
  • paramètres dans une méthode Java
Tableau 1. Annotations de métadonnées de services Web (JSR 181). Décrit les annotations de métadonnées de services Web prises en charge et leurs propriétés associées.
Classe d'annotation Annotation Propriétés
javax.jws. WebService L'annotation @WebService marque une classe Java comme implémentant un service Web ou marque une interface SEI (Service Endpoint Interface) comme implémentant une interface de service Web.
Important :
  • Une classe Java qui implémente un service web doit spécifier l'annotation @WebService ou @WebServiceProvider. Les deux annotations ne peuvent pas être présentes. Cette annotation est applicable sur une interface SEI client ou serveur ou sur une classe d'implémentation de noeud final de serveur.
  • Si l'annotation fait référence à une interface SEI via l'attribut endpointInterface, l'interface SEI doit également être annotée à l'aide de @WebService.
  • Voir les informations sur l'exposition des méthodes dans les services web JAX-WS basés sur le SEI pour connaître les meilleures pratiques d'utilisation des annotations @WebService et @WebMethod sur une implémentation de point final de service pour spécifier les méthodes Java que vous voulez exposer en tant que services web JAX-WS.
  • Cible de l'annotation : Type
  • Propriétés :
    - name
    Le nom du wsdl:portType. La valeur par défaut est le nom non qualifié de la classe ou de l'interface Java. (Chaîne)
    - targetNamespace
    Indique l'espace de nom XML du WSDL et des éléments XML générés à partir du service Web. La valeur par défaut est l'espace de nom mappé à partir du nom de package contenant le service Web. (Chaîne)
    - serviceName
    Indique le nom du service Web : wsdl:service. La valeur par défaut est le nom simple de la classe Java + Service. (Chaîne)
    - endpointInterface
    Indique le nom qualifié de l'interface de point de contact de service qui définit le contrat de service Web abstrait des services. Si ce nom est indiqué, l'interface de point de contact de service sert à déterminer le contrat WSDL abstrait. (Chaîne)
    - portName
    Le wsdl:portName. La valeur par défaut est WebService.name +Port . (Chaîne)
    - wsdlLocation
    Spécifie l'adresse Web du document WSDL qui définit le service Web. L'adresse Web est relative ou absolue. (Chaîne)
javax.jws. WebMethod L'annotation @WebMethod indique une méthode correspondant à une opération de service Web.

Appliquez cette annotation aux méthodes d'une interface SEI (Service Endpoint Interface) client ou serveur ou d'une classe d'implémentation de noeud final de serveur.

  • Cible de l'annotation : Méthode
  • Propriétés :
    - operationName
    Indique le nom de l'attribut wsdl:operation correspondant à cette méthode. La valeur par défaut est le nom de la méthode Java. (Chaîne)
    - action
    Définit l'action correspondant à cette opération. Pour les liaisons SOAP, cette valeur détermine la valeur de l'en-tête SOAPAction et doit être définie explicitement.
    - exclude
    Indique si une méthode doit être exclue du service Web. La valeur par défaut est false. (Booléenne)
javax.jws. Oneway L'annotation @Oneway dénote une méthode sous la forme d'une opération unidirectionnelle de service Web qui ne comporte qu'un message d'entrée et aucun message de sortie.

Appliquez cette annotation aux méthodes d'une interface SEI (Service Endpoint Interface) client ou serveur ou d'une classe d'implémentation de noeud final de serveur.

  • Cible de l'annotation : Méthode
  • Aucune propriété n'est associée à l'annotation Oneway.
javax.jws. WebParam L'annotation @WebParam personnalise le mappage d'un paramètre individuel vers un élément XML ou une partie de message de service Web.

Appliquez cette annotation aux méthodes d'une interface SEI (Service Endpoint Interface) client ou serveur ou d'une classe d'implémentation de noeud final de serveur.

  • Cible de l'annotation : Paramètre
  • Propriétés :
    - name
    Nom du paramètre. Si l'opération est de type RPC (Remote Procedure Call) et que l'attribut partName n'est pas spécifié, ce nom désigne l'attribut wsdl:part représentant le paramètre. Si l'opération est de type document ou que le paramètre est mappé vers un en-tête, -name désigne le nom local de l'élément XML représentant le paramètre. Cet attribut est obligatoire si l'opération est de type document, que le style de paramètre est BARE et que le mode est OUT ou INOUT. (Chaîne)
    - partName
    Définit le nom de l'attribut wsdl:part représentant ce paramètre. Ce nom n'est utilisé que si l'opération est de type RPC ou que l'opération est de type document et que le style de paramètre est BARE. (Chaîne)
    - targetNamespace
    Indique l'espace de nom XML de l'élément XML du paramètre. Ne concerne que les liaisons document lorsque l'attribut est mappé vers un élément XML. La valeur par défaut est l'élément targetNamespace du service Web. (Chaîne)
    - mode
    La valeur représente le sens du flux du paramètre pour cette méthode. Les valeurs admises sont IN, INOUT et OUT. (Chaîne)
    - header
    Indique si le paramètre figure dans un en-tête de message plutôt que dans un corps de message. La valeur par défaut est false. (Booléenne)
javax.jws. WebResult L'annotation @WebResult personnalise le mappage d'une valeur de retour vers une partie WSDL ou un élément XML.

Appliquez cette annotation aux méthodes d'une interface SEI (Service Endpoint Interface) client ou serveur ou d'une classe d'implémentation de noeud final de serveur.

  • Cible de l'annotation : Méthode
  • Propriétés :
    - name
    Indique le nom de la valeur de retour telle qu'elle est répertoriée dans le fichier WSDL et détectée dans les messages électroniques. Pour les liaisons RPC, il s'agit du nom de l'attribut wsdl:part représentant la valeur de retour. Pour les liaisons de document, le paramètre -name correspond au nom local de l'élément XML représentant la valeur de retour. La valeur par défaut est return pour les liaisons RPC et DOCUMENT/WRAPPED. La valeur par défaut correspond au nom de méthode + Response pour les liaisons DOCUMENT/BARE. (Chaîne)
    - targetNamespace
    Indique l'espace de nom XML pour la valeur de retour. Ce paramètre n'est utilisé que si l'opération est de type RPC ou si l'opération est de type DOCUMENT et que le style de paramètre est BARE. (Chaîne)
    - header
    Indique si le résultat est transporté dans un en-tête. La valeur par défaut est false. (Booléenne)
    - partName
    Indique le nom de partie du résultat comportant des opérations RPC ou DOCUMENT/BARE. La valeur par défaut est @WebResult.name. (Chaîne)
javax.jws. HandlerChain L'annotation @HandlerChain associe le service Web à une chaîne de gestionnaires définie en externe.

Vous ne pouvez configurer le gestionnaire côté serveur qu'à l'aide de l'annotation @HandlerChain sur l'interface SEI (Service Endpoint Interface) ou la classe d'implémentation de noeud final de serveur.

Utilisez une des nombreuses méthodes permettant de configurer un gestionnaire côté client. Vous pouvez configurer le gestionnaire côté client à l'aide de l'annotation @HandlerChain sur la classe de service générée ou l'interface SEI. En outre, vous pouvez à l'aide d'un programme enregistrer votre propre implémentation de l'interface HandlerResolver sur le service ou définir la chaîne de gestionnaires sur l'objet Binding.

  • Cible de l'annotation : Type
  • Propriétés :
    - file
    Indique l'emplacement du fichier de chaînes de gestionnaires. Le fichier se trouve dans un chemin java.net.URL absolu sous forme externe ou dans un chemin relatif à partir du fichier de classes. (Chaîne)
    - name
    Indique le nom de la chaîne de gestionnaires dans le fichier de configuration. (Chaîne)
javax.jws. SOAPBinding L'annotation @SOAPBinding indique le mappage du service Web vers le protocole de message SOAP.

Appliquez cette annotation à un type ou aux méthodes d'une interface SEI (Service Endpoint Interface) client ou serveur ou d'une classe d'implémentation de noeud final de serveur.

L'annotation de niveau méthode est limitée quant à l'élément qu'elle peut spécifier et n'est utilisée que si la propriété style est DOCUMENT. Si l'annotation de niveau méthode n'est pas spécifiée, le comportement @SOAPBinding du type est utilisé.

  • Cible de l'annotation : Type ou Méthode
  • Propriétés :
    - style
    Définit le style de codage des messages envoyés à destination et en provenance du service Web. Les valeurs valides sont DOCUMENT et RPC. La valeur par défaut est DOCUMENT. (Chaîne)
    - use
    Définit le format utilisé pour les messages envoyés à destination et en provenance du service Web. La valeur par défaut est LITERAL. ENCODED n'est pas pris en charge. (Chaîne)
    - parameterStyle
    Détermine si les paramètres de la méthode représentent la totalité du corps de message ou si les paramètres sont des éléments encapsulés dans un élément de niveau supérieur portant le nom de l'opération. Les valeurs valides sont WRAPPED ou BARE. Vous ne pouvez utiliser la valeur BARE qu'avec les liaisons de style DOCUMENT. La valeur par défaut est WRAPPED. (Chaîne)

Tableau 2. Annotations JAX-WS (JSR 224). Décrit les annotations JAX-WS prises en charge et leurs propriétés associées.
Classe d'annotation Annotation Propriétés
javax.xml.ws. Action L'annotation @Action spécifie l'action WS-Addressing qui est associée à une opération de service Web.

Lorsque vous utilisez cette annotation avec une méthode particulière, et générez le document WSDL correspondant, l'attribut de l'extension WS-Addressing Action est ajouté aux éléments d'entrée et de sortie de l'opération WSDL qui correspond à cette méthode.

Pour ajouter cet attribut à l'opération WSDL, vous devez également spécifier l'annotation @Addressing sur la classe d'implémentation de noeud final de serveur. Si vous ne voulez pas utiliser l'annotation @Addressing, vous pouvez fournir votre propre document WSDL avec l'attribut Action déjà défini.

  • Cible de l'annotation : Méthode
  • Propriétés :
    - fault
    Spécifie le tableau de FaultAction pour le paramètre wsdl:fault de l'opération. (Chaîne)
    - input
    Spécifie l'action pour le paramètre wsdl:input de l'opération. (Chaîne)
    - output
    Spécifie l'action pour l'élément wsdl:output de l'opération. (Chaîne)
javax.xml.ws. BindingType L'annotation @BindingType indique la liaison à utiliser lors de la publication d'un point de contact de ce type.

Appliquez cette annotation à une classe d'implémentation de noeud final de serveur.

Important : vous pouvez utiliser l'annotation @BindingType sur la classe d'implémentation du point final JavaBeans pour activer le MTOM en spécifiant javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDING ou javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_MTOM_BINDING comme valeur pour l'annotation.
  • Cible de l'annotation : Type
  • Propriétés :
    - value
    Indique l'adresse Web d'identification de liaison. Les valeurs admises sont javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING, javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING et javax.xml.ws.http.HTTPBinding.HTTP2HTTP_BINDING. La valeur par défaut est javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING. (Chaîne)
javax.xml.ws. FaultAction L'annotation @FaultAction spécifie l'action WS-Addressing qui est ajoutée à une réponse d'erreur.

Cette annotation doit être placée dans une annotation @Action.

Si vous utilisez cette annotation avec une méthode particulière, l'attribut de l'extension WS-Addressing FaultAction est ajouté à l'élément fault de l'opération WSDL qui correspond à cette méthode.

Pour ajouter cet attribut à l'opération WSDL, vous devez également spécifier l'annotation @Addressing sur la classe d'implémentation de noeud final de serveur. Si vous ne voulez pas utiliser l'annotation @Addressing, vous pouvez fournir votre propre document WSDL avec l'attribut Action déjà défini.

  • Cible de l'annotation : Méthode
  • Propriétés :
    - value
    Spécifie l'action du paramètre wsdl:fault de l'opération. (Chaîne)
    - output
    Spécifie le nom de la classe d'exception. (Chaîne)
    - className
    Indique le nom de la classe représentant l'encapsuleur de demande. (Chaîne)
javax.xml.ws. RequestWrapper L'annotation @RequestWrapper fournit le bean d'encapsulation de demande généré JAXB, le nom d'élément et l'espace de nom pour la sérialisation et la désérialisation, à l'aide du bean d'encapsulation de demande utilisé au moment de l'exécution.

Lors du démarrage à l'aide d'un objet Java, cet élément sert à résoudre les conflits de surcharge en mode document/literal. Seul l'attribut className est requis dans ce cas.

Appliquez cette annotation aux méthodes d'une interface SEI (Service Endpoint Interface) client ou serveur ou d'une classe d'implémentation de noeud final de serveur.

  • Cible de l'annotation : Méthode
  • Propriétés :
    - localName
    Indique le nom local de l'élément de schéma XML représentant l'encapsuleur de demande. La valeur par défaut est operationName, comme défini dans l'annotation javax.jws.WebMethod. (Chaîne)
    - targetNamespace
    Indique l'espace de nom XML de la méthode d'encapsulation de demande. La valeur par défaut est l'espace de nom cible de l'interface SEI. (Chaîne)
    - className
    Indique le nom de la classe représentant l'encapsuleur de demande. (Chaîne)
    - partName
    Spécifie le nom de l'attribut wsdl:part qui représente l'élément de schéma XML pour la classe RequestWrapper. Cette propriété est applicable à JAX-WS 2.2 et versions ultérieures. (Chaîne)
javax.xml.ws. ResponseWrapper L'annotation @ResponseWrapper fournit le bean d'encapsulation de réponse généré JAXB, le nom d'élément et l'espace de nom pour la sérialisation et la désérialisation, à l'aide du bean d'encapsulation de réponse utilisé au moment de l'exécution.

Lors du démarrage à l'aide d'un objet Java, cet élément sert à résoudre les conflits de surcharge en mode document/literal. Seul l'attribut className est requis dans ce cas.

Appliquez cette annotation aux méthodes d'une interface SEI (Service Endpoint Interface) client ou serveur ou d'une classe d'implémentation de noeud final de serveur.

  • Cible de l'annotation : Méthode
  • Propriétés :
    - localName
    Indique le nom local de l'élément de schéma XML représentant l'encapsuleur de demande. La valeur par défaut est operationName + Response. La valeur par défaut operationName est définie dans l'annotation javax.jws.WebMethod. (Chaîne)
    - targetNamespace
    Indique l'espace de nom XML de la méthode d'encapsulation de demande. La valeur par défaut est l'espace de nom cible de l'interface SEI. (Chaîne)
    - className
    Indique le nom de la classe représentant l'encapsuleur de réponse. (Chaîne)
    - partName
    Spécifie le nom de l'attribut wsdl:part qui représente l'élément de schéma XML pour la classe ResponseWrapper. Cette propriété est applicable à JAX-WS 2.2 et versions ultérieures. (Chaîne)
javax.xml.ws. RespectBinding L'annotation @RespectBinding indique si l'implémentation JAX-WS doit utiliser le contenu de l'élément wsdl:binding pour un noeud final.

Si cette annotation est spécifiée, un contrôle est effectué pour s'assurer que tous les éléments d'extensibilité WSDL requis avec l'attribut activé avec la valeur true sont pris en charge.

Appliquez cette annotation aux méthodes sur une classe d'implémentation de noeud final de serveur.

  • Cible de l'annotation : Méthode
  • Propriétés :
    - enabled
    Indique si wsdl:binding doit être utilisé ou non. La valeur par défaut est true. (Booléenne)
javax.xml.ws. ServiceMode L'annotation @ServiceMode indique si un fournisseur de service doit avoir accès à la totalité d'un message de protocole ou uniquement à la charge utile du message.
Important : l'annotation @ServiceMode n'est prise en charge que pour les classes annotées avec l'annotation @WebServiceProvider.
  • Cible de l'annotation : Type
  • Propriétés :
    - value
    Indique si la classe de fournisseur accepte la charge utile du message, PAYLOAD, ou la totalité du message, MESSAGE. La valeur par défaut est PAYLOAD. (Chaîne)
javax.xml.ws. soap.Addressing L'annotation @Addressing indique que ce service veut activer la prise en charge WS-Addressing.

Appliquez cette annotation aux méthodes sur une classe d'implémentation de noeud final de serveur.

  • Cible de l'annotation : Type
  • Propriétés :
    - enabled
    Indique si WS-Addressing est activé ou non. La valeur par défaut est true. (Booléenne)
    - required
    Indique que les en-têtes WS-Addressing doivent être présents sur les messages entrants. La valeur par défaut est false. (Booléenne)
    - responses
    Indique le système d'échange de messages à utiliser. La valeur par défaut est Responses.ALL. Cette propriété est applicable à JAX-WS 2.2 et versions ultérieures. (Chaîne)
javax.xml.ws. soap.MTOM L'annotation @MTOM indique si un contenu binaire dans le corps d'un message SOAP est envoyé à l'aide de MTOM.

Appliquez cette annotation à une classe d'implémentation de noeud final de service.

  • Cible de l'annotation : Classe
  • Propriétés :
    - enabled
    Indique si MTOM est activé pour le noeud final JAX-WS. La valeur par défaut est true. (Booléenne)
    - threshold
    Indique la taille minimale des messages envoyés à l'aide de MTOM. Si la taille du message est inférieure à l'entier spécifié, le message est intégré dans le document XML en tant que données base64 ou hexBinary. (integer)
javax.xml.ws. WebFault L'annotation @WebFault mappe les erreurs WSDL vers les exceptions Java. Elle sert à enregistrer le nom de l'erreur pendant la sérialisation du type JAXB qui est généré à partir d'un élément global référencé par un message d'erreur WSDL. Elle permet également de personnaliser le mappage des exceptions spécifiques à un service vers des incidents WSDL.

Cette annotation ne peut être appliquée qu'à une classe d'implémentation d'erreur sur le client ou le serveur.

  • Cible de l'annotation : Type
  • Propriétés :
    - name
    Indique le nom local de l'élément XML représentant l'erreur correspondante dans le fichier WSDL. La valeur réelle doit être spécifiée. (Chaîne)
    - targetNamespace
    Indique l'espace de nom de l'élément XML représentant l'erreur correspondante dans le fichier WSDL. (Chaîne)
    - faultBean
    Indique le nom de la classe de bean d'erreur. (Chaîne)
    - messageName
    Spécifie le nom de l'attribut wsdl:message qui représente le défaut (fault) correspondant dans le fichier WSDL. Cette propriété est applicable à JAX-WS 2.2 et versions ultérieures. (Chaîne)
javax.xml.ws. WebServiceProvider L'annotation @WebServiceProvider indique qu'une classe satisfait les exigences d'une classe d'implémentation de fournisseur JAX-WS.
Important :
  • Une classe Java qui implémente un service web doit spécifier l'annotation @WebService ou @WebServiceProvider. Les deux annotations ne peuvent pas être présentes.
  • L'annotation @WebServiceProvider n'est prise en charge que sur la classe d'implémentation de service.
Toute classe spécifiant l'annotation @WebServiceProvider doit implémenter l'interface javax.xml.ws.Provider.
  • Cible de l'annotation : Type
  • Propriétés :
    - targetNamespace
    Indique l'espace de nom XML du WSDL et des éléments XML générés à partir du service Web. La valeur par défaut est l'espace de nom mappé à partir du nom de package contenant le service Web. (Chaîne)
    - serviceName
    Indique le nom du service Web : wsdl:service. La valeur par défaut est le nom simple de la classe Java + Service. (Chaîne)
    - portName
    Le wsdl:portName. La valeur par défaut est le nom de la classe+ Port. (Chaîne)
    - wsdlLocation
    Adresse Web du document WSDL définissant le service Web. Cet attribut est obligatoire. (Chaîne)
javax.xml.ws. WebServiceRef L'annotation @WebServiceRef définit une référence à un service Web appelé par le client.
Remarque :
  • L'annotation @WebServiceRef peut être utilisée pour injecter des instances de ports et de services JAX-WS.
  • L'annotation @WebServiceRef est prise en charge uniquement dans certains types de classe, Exemples: classes d'implémentation de noeud final JAX-WS, classes de gestionnaire JAX-WS, classes Enterprise JavaBeans et classes de servlet. Cette annotation est prise en charge dans les mêmes types de classe que l'annotation @Resource. Pour obtenir la liste complète des types de classe pris en charge, voir la spécification Java Platform, Enterprise Edition (Java EE) 5.
  • Cible de l'annotation : Type, Zone ou Méthode
  • Propriétés :
    - name
    Nom JNDI de la ressource. Le nom de zone est la valeur par défaut pour des annotations de zone. Le nom de propriété JavaBeans qui correspond à la méthode est la valeur par défaut pour les annotations de méthode. Vous devez spécifier une valeur pour des annotations de classe s'il n'existe pas de valeur par défaut. (Chaîne)
    - type
    Indique le type Java de la ressource. Le type de zone est la valeur par défaut pour des annotations de zone. Le type de la propriété JavaBeans est la valeur par défaut pour les annotations de méthode. Vous devez spécifier une valeur pour des annotations de classe s'il n'existe pas de valeur par défaut. (Classe)
    - mappedName
    Indique le nom avec lequel mapper cette ressource. (Chaîne)
    - value
    Indique la valeur de la classe de service et s'il s'agit d'un type qui étend javax.xml.ws.Service. Cet attribut est obligatoire si le type de la référence est une interface du noeud final du service. (Classe)
    - wsdlLocation
    Adresse Web du document WSDL définissant le service Web. Cet attribut est obligatoire. (Chaîne)
    - lookup
    Spécifie le nom de recherche JNDI pour le service Web cible. Cette propriété est applicable à JAX-WS 2.2 et versions ultérieures. (Chaîne)
javax.xml.ws. WebServiceRefs L'annotation @WebServiceRefs associe plusieurs annotations @WebServiceRef avec une classe spécifique.
Note : L'annotation @WebServiceRef n'est prise en charge que dans certains types de classes. Exemples: classes d'implémentation de noeud final JAX-WS, classes de gestionnaire JAX-WS, classes Enterprise JavaBeans et classes de servlet. Cette annotation est prise en charge dans les mêmes types de classe que l'annotation @Resource. Pour obtenir la liste complète des types de classe pris en charge, voir la spécification Java Platform, Enterprise Edition (Java EE) 5.
  • Cible de l'annotation : Type
  • Propriétés :
    - value
    Indique un tableau associé à plusieurs déclarations de référence de service Web. Cet attribut est obligatoire.
Tableau 3. Annotations communes JAX-WS (JSR 250). Décrit les annotations communes JAX-WS prises en charge et leurs propriétés associées.
Classe d'annotation Annotation Propriétés
javax.annotation. Resource L'annotation @Resource marque une ressource WebServiceContext requise par l'application.
Remarque :

L'application de cette annotation à un champ de type WebServiceContext sur la classe d'implémentation du point d'extrémité du serveur pour un point d'extrémité JavaBeans ou un point d'extrémité Provider entraîne l'injection par le conteneur d'une instance de WebServiceContext dans le champ spécifié.

Lorsque cette annotation est utilisée à la place de l'annotation @WebServiceRef, les règles décrites pour l'annotation @WebServiceRef s'appliquent.

  • Cible de l'annotation : Zone ou Méthode
  • Propriétés :
    - type
    Indique le type Java de la ressource. Vous devez utiliser la valeur par défaut java.lang.Object ou la valeur javax.xml.ws.Web ServiceContext. Si le type correspond à la valeur par défaut, la ressource doit être injectée dans une zone ou dans une méthode. Dans ce cas, le type de la zone ou le type de la propriété JavaBeans définie par la méthode doit être javax.xml.ws.WebServiceContext. (Classe)
    Si vous utilisez cette annotation pour injecter un service Web, voir la description de l'attribut type de @WebServiceRef.
javax.annotation. Resources L'annotation @Resources associe plusieurs annotations @Resource à une classe spécifique et sert de conteneur pour de nombreuses déclarations de ressources.
  • Cible de l'annotation : Zone ou Méthode
  • Propriétés :
    - value
    Indique un tableau pour plusieurs annotations @Resource. Cet attribut est obligatoire.
javax.annotation. PostConstruct L'annotation @PostConstruct marque une méthode qui doit s'exécuter une fois l'injection de dépendance effectuée sur la classe.

Appliquez cette annotation sur un gestionnaire d'applications JAX-WS ou une classe d'implémentation de noeud final de serveur.

  • Cible de l'annotation : Méthode
javax.annotation. PreDestroy L'annotation @PreDestroy marque une méthode qui doit s'exécuter lorsque l'instance est en cours de suppression par le conteneur.

Appliquez cette annotation sur un gestionnaire d'applications JAX-WS ou une classe d'implémentation de noeud final de serveur.

  • Cible de l'annotation : Méthode
Tableau 4. IBM. Décrit les annotations de propriété IBM® prises en charge et leurs propriétés associées.
Classe d'annotation Annotation Propriétés
com.ibm.websphere. wsaddressing. jaxws21. SubmissionAddressing L'annotation @SubmissionAddressing indique que ce service souhaite activer la prise en charge de WS-Addressing pour la spécification WS-Addressing 2004/08.

Cette annotation fait partie de l'implémentation IBM de la spécification JAX-WS 2.1 .

Appliquez cette annotation aux méthodes sur une classe d'implémentation de noeud final de serveur.

  • Cible de l'annotation : Type
  • Propriétés :
    - enabled
    Indique si WS-Addressing est activé ou non. La valeur par défaut est true. (Booléenne)
    - required
    Indique que les en-têtes WS-Addressing doivent être présents sur les messages entrants. La valeur par défaut est false. (Booléenne)