3.2.4. Modifications aux services Web

3.2.4.1. Modifications aux services Web

JBoss EAP 6 inclut un support pour le déploiement des points de terminaison du service JAX-WS Web Service. Ce support est donné par JBossWS. Pour plus d'informations sur les Web Services, voir le chapitre qui s'intitule JAX-WS Web Services dans le Development Guide pour JBoss EAP 6 https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/.
JBossWS 4 inclut les changements suivants qui pourraient avoir un impact sur votre migration
Changements aux API JBossWS API
Les composants communs et SPI ont été refactorisés dans JBossWS 4. Le tableau suivant énumère les changements qui pourraient avoir un impact sur votre migration d'application.

Tableau 3.8. Changements aux API JBossWS API

Old JAR Old Package New JAR New Package
JBossWS SPI org.jboss.wsf.spi.annotation.* JBossWS API org.jboss.ws.api.annotation.*
JBossWS SPI org.jboss.wsf.spi.binding.* JBossWS API org.jboss.ws.api.binding.*
JBossWS SPI org.jboss.wsf.spi.management.recording.* JBossWS API org.jboss.ws.api.monitoring.*
JBossWS SPI org.jboss.wsf.spi.tools.* JBossWS API org.jboss.ws.api.tools.*
JBossWS SPI org.jboss.wsf.spi.tools.ant.* JBossWS API org.jboss.ws.tools.ant.*
JBossWS SPI org.jboss.wsf.spi.tools.cmd.* JBossWS API org.jboss.ws.tools.cmd.*
JBossWS SPI org.jboss.wsf.spi.util.ServiceLoader JBossWS API org.jboss.ws.api.util.ServiceLoader
JBossWS Common org.jboss.wsf.common.* JBossWS API org.jboss.ws.common.*
JBossWS Common org.jboss.wsf.common.handler.* JBossWS API org.jboss.ws.api.handler.*
JBossWS Common org.jboss.wsf.common.addressing.* JBossWS API org.jboss.ws.api.addressing.*
JBossWS Common org.jboss.wsf.common.DOMUtils JBossWS API org.jboss.ws.api.util.DOMUtils
JBossWS Native org.jboss.ws.annotation.EndpointConfig JBossWS API org.jboss.ws.api.annotation.EndpointConfig
JBossWS Framework org.jboss.wsf.framework.invocation.RecordingServerHandler JBossWS Common org.jboss.ws.common.invocation.RecordingServerHandler
@WebContext Annotation
Dans JBossWS 3.4.x, cette annotation a été empaquetée sous la forme org.jboss.wsf.spi.annotation.WebContext dans le JAR du SPI JBossWS. Dans JBossWS 4.0, cette annotation a été déplacée dans org.jboss.ws.api.annotation.WebContext dans le JAR de l'API JBossWS. Si votre application inclut la dépendance obsolète, vous devrez remplacer les importations et les dépendances dans le code source de votre application et le compiler avec le nouveau JAR de l'API JBossWS.
Il y a également un changement à un attribut non rétrocompatible. L'attribut String [] virtualHosts a été changé en String virtualHost. Dans JBoss EAP 6, vous ne pouvez spécifier qu'un seul hôte virtuel par déploiement. Si plusieurs services Web utilisent l'annotation @WebContext, la valeur de virtualHost doit être identique pour tous les points de terminaison définis dans l'archive de déploiement.
Configuration des points de terminaison
JBossWS 4.0 assure l'intégration de la pile de Services Web JBoss dans la plupart des modules d'Apache CXF. La couche d'intégration permet l'utilisation d'API de services Web standards, y compris JAX-WS. Il permet également l'utilisation des fonctionnalités avancées d'Apache CFX sur le conteneur de JBoss EAP 6, sans nécessiter d'installation ou de configuration complexe.
Le sous-système de webservice dans la configuration du domaine de JBoss EAP 6 inclut les configurations de points de terminaison prédéfinis. Vous pouvez également définir vos propres configurations de points de terminaison supplémentaires. L'annotation @org.jboss.ws.api.annotation.EndpointConfig est utilisée pour faire référence à une configuration de point de terminaison donné.
Pour plus d'informations sur la façon de configurer les points de terminaison du serveur JBoss, voir le chapitre intitulé JAX-WS Web Services dans le Guide développement de JBoss EAP 6 https://access.redhat.com/site/documentation/JBoss_Enterprise_Application_Platform/.
jboss-webservices.xml Deployment Descriptor
JBossWS 4.0 introduit un nouveau descripteur de déploiement pour configurer des services web. Le fichier jboss-webservices.xml fournit des informations supplémentaires pour le déploiement donné et remplace partiellement le fichier obsolète jboss.xml.
Pour les déploiements du webservice EJB, l'emplacement du fichier descripteur jboss-webservices.xml attendu est dans le répertoire META-INF /. Pour les points de terminaison de service Web POJO et EJB regroupés dans le fichier WAR, l'emplacement prévu du fichier jboss-webservices.xml est dans le répertoire WEB-INF /.
Voici un exemple de fichier descripteur jboss-webservices.xml et un tableau décrivant les éléments.
<webservices>
    <context-root>foo<context-root>    
    <config-name>Standard WSSecurity Endpoint</config-name>
    <config-file>META-INF/custom.xml</config-file>
    <property>
        <name>prop.name</name>
        <value>prop.value</value>
    </property>
    <port-component>
        <ejb-name>TestService</ejb-name>
        <port-component-name>TestServicePort</port-component-name>
        <port-component-uri>/*</port-component-uri>
        <auth-method>BASIC</auth-method>
        <transport-guarantee>NONE</transport-guarantee>
        <secure-wsdl-access>true</secure-wsdl-access>
    </port-component>
    <webservice-description>
        <webservice-description-name>TestService</webservice-description-name>
        <wsdl-publish-location>file:///bar/foo.wsdl</wsdl-publish-location>
    </webservice-description>
</webservices>

Tableau 3.9. jboss-webservice.xml File Element Description

Nom de l'élément Description
context-root
Utilisé pour personnaliser le root contextuel du déploiement des services web.
config-name
config-file
Utilisé pour associer un déploiement de point de terminaison à une configuration de point de terminaison donné. Les configurations de points de terminaison sont spécifiées dans le fichier de configuration référencé ou dans le sous-système webservices de la configuration de domaine.
property
Utilisé pour définir une paire de valeurs de noms de propriétés simples en vue de configurer le comportement de la pile de services web.
port-component
Utilisé pour personnaliser l'URI cible du point de terminaison EJB ou pour configurer les propriétés liées à la sécurité.
webservice-description
Utilisé pour personnaliser ou pour remplacer l'emplacement publié WSDL des Services Web.