Outils des services Web - Notes sur l'édition

1.0 Introduction
2.0 Spécifications et logiciels pris en charge
3.0 Modifications par rapport à la version précédente
4.0 Problèmes connus
   4.1 Explorateur de services Web
   4.2 Registre UDDI privé
   4.3 Interopérabilité avec l'environnement d'exécution IBM SOAP
   4.4 Génération d'un document WSDL à partir d'un fichier DADX
   4.5 Générateur JSP d'outils Web
   4.6 Utilisation du client de test universel
   4.7 Plusieurs sorties admises dans certains cas avec les services Web DADX
   4.8 Préférence du pilote JDBC à utiliser sous Linux uniquement
   4.9 Nécessité de mettre à jour les fichiers exemple DAD si XML extender n'est pas installé dans le répertoire par défaut
   4.10 Problèmes liés aux services Web DADX
   4.11 Support de génération DADX
   4.12 Erreurs WSDL après importation d'un fichier de services Web de la version 4.0.x
   4.13 Problème lors de la création de services Web EJB avec l'environnement d'exécution WebSphere v5.0.2
   4.14 Problèmes lors de l'utilisation de la ligne de commande de services Web
   4.15 Création de service Web sans serveur existant
   4.16 Génération d'une application exemple de services Web
   4.17 Importation de fichiers WSDL avec l'authentification de base HTTP
   4.18 Problèmes lors de l'utilisation de l'environnement d'exécution WebSphere v5.0.2
   4.19 Configuration d'un groupe DADX avec des informations de source de données
   4.20 Chargement du releveur de coordonnées client à l'aide d'Universal Test Client
   4.21 Préférences des ressources non observées
   4.22 Problèmes lors de l'utilisation de l'environnement d'exécution Apache Axis 1.0
   4.23 La compilation du fichier JSP exemple de service Web n'a pas abouti
   4.24 Problème avec la ligne de commande de services Web sur le système allemand
   4.25 Erreur lorsque l'hôte local n'est pas défini
   4.26 Restrictions permanentes lors de l'utilisation de l'environnement d'exécution IBM SOAP
   4.27 Le client et le service Web utilisent des environnements d'exécution différent
   4.28 Sélection de Terminer dans l'assistant de client de service Web
   4.29 Sélection du projet routeur lors de la création de services Web EJB
   4.30 Création de services Web EJB ou de squelette EJB à l'aide de la ligne de commande
   4.31 Aide-mémoire de services Web

1.0 Introduction

La fonction des outils des services Web permet de rechercher, créer et publier des services Web de bean Java, DADX, de bean enterprise et des services Web d'URL. Ce fichier Readme décrit les problèmes et restrictions connus, ainsi que les solutions associées aux fonctions des outils des services Web suivants :

2.0 Spécifications et logiciels pris en charge

L'explorateur de services Web prend en charge les navigateurs suivants :

Cette version des outils des services Web génère du code conforme aux spécifications suivantes :

Cette version des outils des services Web prend en charge :

Si vous lancez l'environnement de test WORF en dehors de l'espace de travail à l'aide de Mozilla, il recommandé d'utiliser au minimum la version 1.3.1 du navigateur. Les fichiers de description et les données générées après l'appel d'un service Web risquent de ne pas s'afficher correctement si vous utilisez une version antérieure du navigateur Mozilla.

L'environnement d'exécution DADX requiert DB2 7.2 fixpack 6 ou version ultérieure ou DB2 8.1 ou version ultérieure.

3.0 Modifications par rapport à la version précédente

Les fonctions suivantes ont été ajoutées dans les outils de services Web de la version 5.1 :

4.0 Problèmes connus

4.1 Explorateur de services Web

4.2 Registre UDDI privé

4.3 Interopérabilité avec l'environnement d'exécution IBM SOAP

4.4 Génération d'un document WSDL à partir d'un fichier DADX

4.5 Générateur JSP d'outils Web

Lors du lancement du client de test universel à partir de l'assistant de services Web, l'URL du fournisseur JNDI correspond au port 2809, utilisé par défaut par WebSphere v5. Si vous utilisez un serveur WebSphere v4 ou si vous avez modifié le numéro de port, vous ne pourrez plus effectuer de recherches dans le répertoire JNDI. Si vous tentez d'accéder à ce répertoire, l'erreur suivante se produit :

IWAD0403E Impossible de construire l'arborescence JNDI : Interception de CORBA.COMM_FAILURE lors de la résolution du paramètre reference=WsnNameService initial.

La solution est la suivante :

  1. Cliquez deux fois sur le serveur utilisé. Les propriétés du serveur s'affichent.
  2. Sélectionnez l'onglet des ports.
  3. Copiez le port d'amorçage Orb.
  4. Ouvrez la fenêtre des propriétés JNDI dans le client de test universel.
  5. Collez le port d'amorçage dans la zone d'entrée de l'URL du fournisseur.

4.7 Plusieurs sorties admises dans certains cas avec les services Web DADX

Généralement, nos outils ne prennent pas en charge plusieurs sorties dans un service Web. Toutefois, dans le cas de services Web DADX, plusieurs sorties sont admises si la valeur true est affectée à la propriété d'utilisation du groupe de styles de document. Dans ce cas, lorsque la valeur true est attribuée à style de document, plusieurs sorties sont associées dans un seul document XML.

4.8 Préférence du pilote JDBC à utiliser sous Linux uniquement

Une nouvelle catégorie de préférences de services Web (Fenêtre > Préférences > Services Web) appelée Pilotes JDBC a été ajoutée. Bien que cette préférence soit disponible sur toutes les plateformes, elle est conçue pour être utilisée uniquement sous Linux. Sous Linux, il peut être difficile de déterminer l'emplacement du fichier JAR contenant les pilotes JDBC. C'est pourquoi, cette page de préférences a été ajouté afin que vous puissiez indiquer le fichier JAR à utiliser. Généralement, seul le code de validation DADX utilise ces informations relatives au fichier JAR.

4.9 Nécessité de mettre à jour les fichiers exemple DAD si XML extender n'est pas installé dans le répertoire par défaut

Les fichiers DAD se trouvant dans le répertoire répertoire_installation_WS\wstools\eclipse\plugins\com.ibm.etools.webservice_<version>\samples\DADX_examples doivent être modifiés afin de refléter votre configuration système particulière.

Au début du fichier, se trouve une ligne similaire à la ligne suivante :

<!DOCTYPE DAD SYSTEM "c:\dxx\dtd\dad.dtd">

Si XML extender a été chargé dans un autre répertoire que c:\dxx, alors cette chaîne doit être mise à jour afin de correspondre à l'emplacement réel. Cette remarque s'applique également aux machines Linux sur lesquelles l'emplacement est généralement /usr/IBMdb2xml.

4.10 Remarques relatives aux services Web DADX

4.11 Support de génération DADX

Bien que les fonctions définies par l'utilisateur soient répertoriées dans l'assistant Générer DADX, il n'est pas possible de générer de fichier DADX à partir de ces fonctions. La génération DADX peut uniquement être effectuée à partir de fichiers DAD, de procédures mémorisées et d'instructions SQL. La sélection d'une fonction UDF entraîne la génération d'un fichier squelette DADX simple.

4.12 Erreurs WSDL après l'importation d'un fichier de services Web à partir de la version 4.0.x

Si vous avez importé un fichier de services Web à partir de la version 4.0, les messages d'erreur suivants peuvent s'afficher :

Erreur : Le composant 'result' comporte une valeur incorrecte 'AnyElement' définie pour son type. Les déclarations de type doivent désigner des valeurs valides définies dans un schéma.

Erreur Le composant 'return' comporte une valeur incorrecte 'findPatientResult' définie pour son élément. Les déclarations d'élément doivent désigner des valeurs valides définies dans un schéma.

Erreur : Le composant 'result' comporte une valeur incorrecte 'findPatientResponse' définie pour son élément. Les déclarations d'élément doivent désigner des valeurs valides définies dans un schéma.

La solution est la suivante :

  1. Supprimez les fichiers WSDL.
  2. Regénérez les services Web en exécutant une nouvelle fois l'assistant Services Web.

4.13 Problème lors de la création de services Web EJB avec l'environnement d'exécution WebSphere v5.0.2

4.14 Problèmes lors de l'utilisation de la ligne de commande de services Web

4.15 Création de service Web sans serveur existant

4.16 Génération d'une application exemple de services Web

4.17 Importation de fichiers WSDL avec l'authentification de base HTTP

Lors de la génération de squelettes ou de clients à partit d'un fichier WSDL comportant des importations relatives et qui protégé par l'authentification de base HTTP, l'utilisateur voit un message d'erreur indiquant que le fichier WSDL ne peut pas être résolu même si l'ID utilisateur et le mot de passe corrects sont entrés. Le problème est dû au fait que l'ID utilisateur et le mot de passe permettent d'extraire uniquement le fichier WSDL d'origine et non les fichiers importés par ce dernier.

Pour résoudre ce problème, l'utilisateur peut tout d'abord télécharger le fichier WSDL et tous les fichiers importés par ce dernier dans le plan de travail puis générer un squelette ou un client à partir du fichier WSDL téléchargé.

4.18 Problèmes lors de l'utilisation de l'environnement d'exécution WebSphere v5.0.2

4.19 Configuration d'un groupe DADX avec des informations de source de données

Si le serveur WebSphere Application Server V5.0 est utilisé pour héberger un service Web DADX, alors le fichier group.properties du groupe DADX doit utiliser la propriété initialContextFactory suivante :

initialContextFactory=com.ibm.websphere.naming.WsnInitialContextFactory

De plus, il est nécessaire d'ajouter les éléments ci-dessous au fichier web.xml du projet contenant le groupe DADX. (En supposant que le nom JNDI de la source de données est jdbc/hospital.)

       <resource-ref id="ResourceRef_1058550453092">
              <res-ref-name>jdbc/hospital</res-ref-name>
              <res-type>javax.sql.DataSource</res-type>
              <res-auth>CONTAINER</res-auth>
              <res-sharing-scope>Shareable</res-sharing-scope>
       </resource-ref>
 

4.20 Chargement du releveur de coordonnées client à l'aide d'Universal Test Client

Lorsque le nom de la classe du bean Java du projet de service Web est identique au nom de la classe SEI du projet Web client, Universal Test Client ne peut pas pré-charger la classe du releveur de coordonnées client générée par l'environnement d'exécution WebSphere v5.0.2 ou Axis. Pour éviter ce problème, procédez comme suit :

  1. Supprimez le projet Web client de l'espace de travail
  2. Créez le projet Web client sous un EAR différent dans lequel nom du projet EAR doit précéder dans l'ordre alphabétique le nom du projet EAR de service. Par exemple, si le nom du projet EAR de service est "DefaultEAR", appelez le nouveau projet EAR "ClientEAR".
  3. Exécutez à nouveau l'assistant de service Web.

 

4.21 Préférences des ressources non observées

Les préférences de remplacement de fichier, de création de dossier et de réservation de fichier automatique ne sont pas observées lors de la création de services Web à l'aide de l'environnement d'exécution WebSphere v5.0.2 et Axis. La création de dossier est toujours autorisée et la réservation automatique de fichier n'est jamais activée.

Lors de l'utilisation de l'environnement d'exécution WebSphere v5.0.2, le fichier WSDL, les artefacts de déploiement et SEI (sérialiseurs et désérialiseurs) sont toujours remplacés. Les artefacts de développement (bean service, beans de type complexe, classe holder et helper) ne sont jamais remplacées. Toutefois, l'utilisateur obtient un message d'avertissement relatif aux descripteurs de déploiement s'ils existent. L'utilisateur peut cliquer sur OK pour remplacer les descripteurs de déploiement et poursuivre le scénario ou cliquer sur Annuler pour éviter que les descripteurs ne soient remplacés.

Lors de l'utilisation de l'environnement d'exécution Apache Axis 1.0, les émetteurs Axis régénèrent à chaque fois tous les fichiers Java serveur/client, deploy.wsdd et undeploy.wsdd. Le scénario de génération de WSDL2Java pour le service génère uniquement le fichier d'implémentation du squelette s'il n'existe pas déjà. Si cette implémentation existe déjà, elle ne sera pas remplacée.

4.22 Problèmes lors de l'utilisation de l'environnement d'exécution Apache Axis 1.0

4.23 La compilation du fichier JSP exemple de service Web n'a pas abouti

Lors de la génération de squelettes de services Web ou de proxy à partir d'un fichier WSDL qui utilise le même nom pour un élément <service> et pour un élément <port>, n'utilisez pas de fichiers JSP exemple en tant que client test. Les fichiers JSP exemple générés contiennent des erreurs et leur compilation n'aboutira pas. Une tentative d'exécution de fichiers JSP exemple sur le serveur génère une erreur 500 dans le navigateur indiquant que les fichiers JSP exemple ne peuvent être chargés et des exceptions sur la console du serveur indiquant que le conteneur de servlet n'a pas pu compiler les fichiers JSP exemple.

4.24 Problème avec la ligne de commande de services Web sur le système allemand

Lors de l'exécution de l'outil de ligne de commande sous Windows sur un système allemand, certains caractères s'affichent sous la forme de caractères "?" dans la sortie de l'invite de commande. Ce caractère apparaît sans doute à la place du caractère Umlaut allemand.

4.25 Erreur lorsque l'hôte local n'est pas défini

L'assistant de création des services Web peut échouer lors de la génération du fichier WSDL si le nom d'hôte"localhost" n'est pas défini sur le système. Le démarrage d'Universal Test Client peut également échouer si "localhost" n'est pas défini.

Sous Windows, l'entrée suivante doivent être définie dans le fichier [UNITE-INSTALLATION]\WINNT\system32\drivers\etc\hosts :

127.0.0.1 localhost

Sous Linux, l'entrée suivante doit être définie dans le fichier /etc/hosts :

127.0.0.1 localhost

4.26 Restrictions permanentes lors de l'utilisation de l'environnement d'exécution IBM SOAP

L'environnement d'exécution IBM SOAP doit être utilisé principalement pour des raisons de compatibilité amont. Il est fortement recommandé d'utiliser l'assistant de services Web avec l'environnement d'exécution pour toutes les opérations de production. Lors de l'utilisation de l'assistant de services Web avec l'environnement d'exécution IBM SOAP, l'utilisateur peut se trouver confronté aux restrictions permanentes suivantes :

4.27 Le client et le service Web utilisent des environnements d'exécution différents

Si vous créez un service Web à partir d'un bean Java ou d'un EJB en choisissant IBM SOAP en tant qu'environnement d'exécution de service et Apache Axis 1.0 en tant qu'environnement d'exécution client, vous pouvez obtenir l'erreur suivante :
Fichier WSDL non trouvé

Pour éviter ce problème, créez tout d'abord le service Web sans choisir de générer un proxy. Créez ensuite un client de service Web à partir du fichier WSDL généré.

4.28 Sélection de Terminer dans l'assistant de client de service Web

Lors de l'utilisation de l'assistant de client de service Web, si l'utilisateur clique sur le bouton Terminer dans la page Configuration d'environnement client, il obtient l'erreur :

"null" n'a pas de solution

La solution consiste à cliquer sur le bouton Suivant de cette page et de la page suivante puis de sélectionner Terminer.

4.29 Sélection du projet routeur lors de la création de services Web EJB

Lors de la création de service Web à partir d'un EJB, dans la page Configuration du déploiement du service, assurez-vous que le projet routeur se trouve dans la même archive EAR (Enterprise Archive) que le projet EJB. Sinon, vous ne serez pas en mesure d'appeler le service Web. Par exemple, si vous utilisez l'environnement d'exécution WebSphere 5.0.2, lorsque vous tentez d'appeler le service Web, vous obtenez une erreur du type suivant :

Impossible de trouver le moteur Webservices.

4.30 Création de services Web EJB ou de squelette EJB à l'aide de la ligne de commande

4.31 Aide-mémoire de services Web

Dans l'aide-mémoire de création, de test et de validation d'un service Web compatible WS-I et dans l'aide-mémoire de création d'un service Web à partir d'un fichier WSDL, si vous utilisez le fichier HelloService.wsdl à partir du répertoire install_wsad/wstools/eclipse/plugins/com.ibm.etools.cs.wsdl.content_5.1/examples, modifiez l'emplacement de port du service en fonction de l'environnement d'exécution de la manière suivante :

Pour IBM Soap :

location="http://hotelocal:9080/HelloWorldSample/servlet/rpcrouter"

Pour l'environnement d'exécution Apache Axis ou WebSphere 5.0.2 :

location="http://hotelocal:9080/HelloWorldSample/services/Hello_Port"

Si vous importez votre propre fichier wsdl, assurez-vous que l'emplacement est défini correctement en fonction de l'environnement d'exécution sélectionné.

Retour au fichier Readme principal