Outils des services Web - Notes sur l'édition


1.0 Restrictions
   1.1 Impossible d'accéder au registre UDDI privé DB2 de WebSphere V6 une fois qu'il a été déployé par dessus un registre UDDI privé existant.
   1.2 La validation de WS-I Attachments Profile 1.0 n'est pas disponible
   1.3 Les assistants utilisent toujours les fichiers EAR des projets existants et ignorent les autres fichiers EAR sélectionnés
   1.4 La case à cocher "Moniteur" de l'assistant peut être en conflit avec les moniteurs existants
   1.5 Ne choisissez pas "Fonction UDF de service Web" comme type de proxy client
   1.6 Option de menu Lancer l'explorateur de services Web uniquement disponible à partir de la perspective J2EE
   1.7 Erreur IWAB0107E générée par l'assistant de service Web lors de la création de services Web DADX
   1.8 Erreur IWAB0534E générée par l'assistant de service Web lorsque le serveur cible sélectionné n'existe pas
   1.9 Erreur IWAB0213E générée par l'assistant de service Web lorsque le serveur cible n'est pas installé
   1.10 L'exemple StockQuoteAxis ne fonctionne que sur Tomcat 5.0
   1.11 Exécution d'exemples de client sécurisés dans un projet EJB et un projet de client d'application
   1.12 Les fichiers WSDL générés pour les services Web comportant des paramètres de type complexe peuvent être différents pour les applications J2EE 1.3 et J2EE 1.4
   1.13 Modification du nom de projet de client par défaut pour le nouveau projet EJB
   1.14 Les scénarios de bout en bout provoquent l'affichage d'un message d'erreur restartModule sur Websphere Application Server sécurisé v5.0 et v5.1
   1.15 Le projet de routeur et le projet EJB doivent se trouver dans le même EAR
   1.16 Possibilité de visualiser les LooseApps via la console d'administration mais pas de les modifier
2.0 Problèmes connus
   2.1 Le scénario de bout en bout échoue avec IBM SOAP Skeleton Web Service
   2.2 Les scénarios de squelette et de clients ne fonctionnent pas avec le WSDL protégé par authentification HTTP de base
   2.3 Message d'erreur dans le projet de routeur JMS après exécution de l'activateur de point d'extrémité
   2.4 Tutoriel : La création d'un service Web à partir d'un bean Java ne crée pas le bon nom pour le package
   2.5 La suppression d'une taxinomie définie par l'utilisateur ne supprime pas le tModel du registre UDDI privé.
   2.6 Génération de code en un emplacement erroné pour les services Web EJB avec prise en charge des annotations
   2.7 Les exemples de services Web fournis dans la galerie d'exemples peuvent s'importer avec des erreurs
   2.8 Levage d'une exception dans le scénario client lorsque WSDL est dépourvu de liaisons SOAP
   2.9 Les scénarios de squelettes n'actualisent pas les fichiers Java générés lors des appels ultérieurs à l'assistant de service Web
   2.10 Levage d'une exception NullPointerException dans UDDIPublish/UDDIUnpublish -profileName <nom du profil>

1.0 Restrictions

1.1 Impossible d'accéder au registre UDDI privé DB2 de WebSphere V6 une fois qu'il a été déployé par dessus un registre UDDI privé existant.

Il se peut que vous ne puissiez pas accéder au registre UDDI privé DB2 de WebSphere v6 une fois qu'il a été déployé par dessus un registre UDDI privé existant. A la fin de l'assistant de déploiement UDDI, l'application UDDI est exécutée sur le serveur, mais les configurations du serveur ne sont pas reconnues. Le fichier EAR du registre UDDI ne peut alors pas interagir avec le registre UDDI DB2. Cela signifie que toutes les commandes exécutées sur l'application UDDI échouent avec une erreur d'initialisation du noeud du registre. Cela inclut l'ajout de taxonomies définies par l'utilisateur, qui génère un incident Axis.

Solutions :
1. Préventives : Avant de déployer un registre UDDI DB2 WebSphere v6, utilisez l'assistant UDDI pour supprimer les registres UDDI déjà installés. Ensuite, appelez de nouveau l'assistant UDDI pour déployer un registre UDDI privé DB2 WebSphere V6.
2. Pour corriger le registre installé : Si vous avez installé un registre UDDI DB2 WebSphere V6 par dessus un registre existant et que vous rencontrez des difficultés, vous pouvez arrêter l'application du registre UDDI, puis la redémarrer, à partir de la console d'administration du serveur.

1.2 La validation de WS-I Attachments Profile 1.0 n'est pas disponible

Les paramètres du niveau de compatibilité WS-I AP détectés dans Windows -> Préférences -> Services Web -> Compatibilité WS-I et dans Propriétés du projet n'ont aucun effet sur la validation WS-I de WSDL lorsque leur valeur est "suggest" ou "require". Par défaut, ces préférences ont la valeur "ignore".

Il n'existe pas de solution. Le document de vérification de test de WS-I Attachments Profile utilisé par le valideur WS-I de WSDL pour tester la compatibilité de votre WSDL avec le profil n'a pas été publié à temps par l'organisation WS-I pour être inclus dans cette version du produit IBM Rational Developer. Un correctif provisoire permettant d'activer cette préférence sera fourni après la publication du document de vérification de test.

1.3 Les assistants utilisent toujours les fichiers EAR des projets existants et ignorent les autres fichiers EAR sélectionnés

Si le service ou le projet client existe avant le lancement de l'assistant Service Web ou Client de service Web, les assistants utilisent toujours le fichier EAR qui contient déjà le projet existant, quel que soit celui sélectionné dans la page Configuration du déploiement de service ou Configuration de l'environnement client. Si le projet existant n'a pas été ajouté à un fichier EAR avant le lancement de l'un des assistants, les assistants échouent avec l'erreur suivante :

IWAB0213E Erreur lors du démarrage du serveur.
Détails :
IWAB0213E Erreur lors du démarrage du serveur.
org.eclipse.core.runtime.CoreException: WebSphere v5 ne prend en charge que les applications d'entreprise J2EE 1.2 et 1.3.
at com.ibm.etools.websphere.tools.v51.internal.WASTestServerWorkingCopy.modifyModules(Unknown Source)
...

Pour remédier à cette limitation, assurez-vous que les projets destinés aux services Web ou aux clients de service Web sont ajoutés à un fichier EAR avant le lancement de l'assistant. Cela n'est pas nécessaire pour les projets dont la cible est un serveur Tomcat car ils n'ont pas besoin d'être ajoutés à un fichier EAR.

1.4 La case à cocher "Moniteur" de l'assistant peut être en conflit avec les moniteurs existants

Si vous avez créé manuellement un moniteur pour votre serveur cible (en sélectionnant Surveillance -> Propriétés... dans la page Serveurs), puis exécuté l'assistant de service Web et sélectionné "Contrôler le service Web" dans la première page de l'assistant de service Web, l'assistant peut échouer lors du traitement, avec l'erreur suivante :

IWAB0014E Une exception imprévue s'est produite. null
java.lang.NullPointerException
at com.ibm.etools.webservice.consumption.command.common.CreateMonitorCommand.hasContentWebServices(CreateMonitorCommand.java:114)
...

Pour résoudre cet incident, exécutez à nouveau l'assistant en désactivant l'option Contrôler le service Web ou ouvrez Surveillance -> Propriétés... sur le serveur, supprimez le moniteur, puis exécutez à nouveau l'assistant après avoir activé l'option Contrôler le service Web.

1.5 Ne choisissez pas "Fonction UDF de service Web" comme type de proxy client

Dans la première page des assistants Service Web et Client du service Web, deux types de proxy client sont disponibles : "Proxy Java" (valeur par défaut habituelle) et "Fonction UDF de service Web". Si vous sélectionnez le type "Fonction UDF de service Web" et tentez de terminer l'assistant ou d'accéder à la page qui suit la page Sélection de service Web, l'assistant échoue avec l'erreur "IWAB0234E Une erreur interne s'est produite. Détails : null".

Solution : N'utilisez pas les assistants Service Web pour créer une fonction UDF de service Web. Au lieu de cela, sélectionnez Nouveau -> Autre -> Données -> Fonction UDF de service Web.

1.6 Option de menu Lancer l'explorateur de services Web uniquement disponible à partir de la perspective J2EE

Le bouton "Lancer l'explorateur de services Web" et l'option de menu "Exécuter > Lancer l'explorateur de services Web" ne sont disponibles qu'à partir de la perspective J2EE.

Ouvrez la perspective J2EE et lancez l'explorateur de services Web ou, si possible, cliquez sur un document WSDL ou un service Web de votre espace de travail à l'aide du bouton droit de la souris et sélectionnez Service Web -> Tester avec un explorateur de services Web.

1.7 Erreur IWAB0107E générée par l'assistant de service Web lors de la création de services Web DADX

Dans un scénario de création de service Web URL ou DADX pour WebSphere Application Server, version 5, avec la génération de proxy de service Web activée, l'assistant peut échouer avec une erreur similaire à l'erreur suivante :

IWAB0107E Erreur détectée lors de la tentative d'analyse d'un élément de message WSDL : input.
WSDLException: faultCode=PARSER_ERROR: Incident lors du chargement de http://localhost:9080/SomeProject/SomeGroup/something.dtd/XSD: Connexion refusée : connect: Exception encapsulée
java.net.ConnectException: Connexion refusée : connect
...

Cet incident survient car l'assistant ne redémarre pas le serveur à temps pour que le générateur du code client du service Web puisse extraire le WSDL ou le XSD du serveur. Cet incident peut être évité au moins de deux manières différentes :

  1. Dans l'assistant Service Web, choisissez pour l'hébergement de votre client de service Web un serveur autre que celui qui héberge votre service Web.
  2. Dans l'assistant Service Web, désactivez la génération du code du proxy. Exécutez l'assistant Client de service Web séparément à la fin de l'exécution de l'assistant Service Web.

1.8 Erreur IWAB0534E générée par l'assistant de service Web lorsque le serveur cible sélectionné n'existe pas

Lorsque vous utilisez l'assistant de service Web pour créer un service Web pour un serveur qui n'existe pas encore, l'assistant crée le serveur, mais risque ensuite d'échouer avec l'erreur suivante :

"IWAB0534E Impossible d'ajouter le projet EAR à la configuration du serveur."
Détails : java.lang.IllegalArgumentException:
at java.lang.Throwable.<init>(Throwable.java:59)
at java.lang.Throwable.<init>(Throwable.java:73)
at org.eclipse.core.internal.runtime.Assert.isLegal(Throwable.java)
at org.eclipse.core.internal.runtime.Assert.isLegal(Throwable.java)
at org.eclipse.core.runtime.Status.setMessage(Throwable.java)
at org.eclipse.core.runtime.Status.lt;init>(Unknown Source)
at com.ibm.wtp.server.core.internal.ServerWorkingCopy.modifyModules(Unknown Source)
...

Pour résoudre cet incident, relancez l'assistant, puis recommencez. L'assistant utilise le serveur créé par l'assistant précédent, avant son échec.

1.9 Erreur IWAB0213E générée par l'assistant de service Web lorsque le serveur cible n'est pas installé

Lorsque vous utilisez l'assistant de service Web pour créer un service Web dans un projet destiné à un type de serveur qui n'a pas été installé, l'assistant peut échouer avec le message suivant :

IWAB0213E Erreur lors du démarrage du serveur.
org.eclipse.core.runtime.CoreException: Le serveur WebSphere v5.1 Test Environment @ localhost n'a pas démarré correctement. Vérifiez si la console contient des messages d'erreur.
at com.ibm.wtp.server.core.internal.Server.synchronousStart(Unknown Source)
...

Cet incident survient car l'assistant, dans la page de configuration du déploiement du serveur ou celle de configuration de l'environnement du client, utilise par défaut le serveur cible du projet sans déterminer au préalable si ce serveur a été installé et s'il est disponible. Ce cas risque de ce produire lors de l'importation de projets générés par d'autres utilisateurs possédant d'autres installations du produit. La solution consiste à choisir un serveur de manière explicite dans la page de configuration du déploiement du serveur ou celle de configuration de l'environnement du client, dans votre espace de travail.

1.10 L'exemple StockQuoteAxis ne fonctionne que sur Tomcat 5.0

Après l'importation de l'exemple StockQuoteAxis, si vous tentez d'ajouter les projets StockQuoteAxis et StockQuoteAxisClient à un serveur Tomcat 4.0 ou 4.1, le message "Aucun projet ne peut être ajouté à ce serveur ou en être supprimé" est affiché. Si vous essayez d'exécuter les exemples de page JSP sur un serveur Tomcat 4.0 ou 4.1, le message "Le serveur sélectionné ne prend pas en charge la version 1.4 de la spécification de module Web J2EE" est affiché.

Cet incident se produit car les projets Web StockQuoteAxis et StockQuoteAxisClient de l'exemple ont été créés pour être exécutés dans un environnement d'exécution J2EE 1.4 / Servlet 2.4, mais ni Tomcat 4.0 ni Tomcat 4.1 ne prend en charge la spécification Servlet 2.4. Il existe deux solutions :

  1. Exécutez l'exemple sur un serveur Tomcat 5.0.
  2. Suivez les instructions "A créer soi-même" de la galerie d'exemples et choisissez un serveur Tomcat 4.0 ou 4.1 pour vos projets Web.

1.11 Exécution d'exemples de client sécurisés dans un projet EJB et un projet de client d'application

Les exemples de pages JSP générés par l'assistant pour un client de service Web dans un EJB ou dans le projet du client d'application appellera le proxy du client de service Web dans un environnement non géré par un conteneur. La configuration de sécurité du client du service Web est ignorée ; le client est désécurisé et il ne peut donc plus interagir avec le service Web sécurisé.

Pour exécuter les exemples de client sécurisé dans le projet EJB, procédez comme suit :

  1. Créez une méthode dans l'EJB du client.
  2. Dans cette méthode, effectuez un appel de service Web via le proxy.
  3. Exécutez l'EJB du client.
Pour exécuter les exemples de client sécurisé dans le projet de client d'application, procédez comme suit :
  1. Recherchez Main.java dans le client d'application.
  2. Dans le programme principal, effectuez un appel de service Web via le proxy.
  3. Exécutez le client d'application.

1.12 Les fichiers WSDL générés pour les services Web comportant des paramètres de type complexe peuvent être différents pour les applications J2EE 1.3 et J2EE 1.4

Si vous créez un service Web ascendant J2EE 1.3 contenant des paramètres de type complexe, chaque zone de la classe de paramètre comportant une méthode getter est mappée à un élément enfant sous xsd:complexType dans le WSDL. Pour une compatibilité intégrale à la spécification JAX-RPC 1.1 dans J2EE 1.4, ce comportement a été modifié. Chaque propriété en lecture/écriture (identifiée par la classe java.beans.Introspector) est mappée à un élément de xsd:complexType.

1.13 Modification du nom de projet de client par défaut pour le nouveau projet EJB

Lors de la création d'un squelette de service Web d'EJB dans lequel le projet EJB cible prévu n'existe pas encore, l'assistant Service Web crée automatiquement le projet EJB et un fichier JAR de client EJB associé. Par exemple :NomProjetEJB et NomProjetEJBClient Ce nom de projet JAR de client EJB est en conflit avec le nom de projet de client de service Web par défaut sélectionné par l'assistant Service Web lorsqu'il tente de créer votre client de service Web. Il en résulte des erreurs dans le projet de client de service Web. Si le projet de client de service Web correspond à un projet Web, des erreurs sont générées dans le fichier EAR du client et une "erreur de copie du fichier JAR de l'utilitaire du service Web" se produit également si vous demandez à l'assistant de générer la fonction de test des exemples de page JSP.

La solution consiste à choisir pour le projet de client de service Web un nom autre que ClientNomProjetEJB (si le projet EJB NomProjetEJB n'existe pas déjà) ou de créer le projet EJB avant de lancer l'assistant Service Web.

1.14 Les scénarios de bout en bout provoquent l'affichage d'un message d'erreur restartModule sur Websphere Application Server sécurisé v5.0 et v5.1

Si la sécurité est activée sur If Websphere Application Server v5.0 ou v5.1, les scénarios de service Web de bout en bout auront un temps d'attente et généreront un message d'erreur indiquant qu'il a été impossible de redémarrer le module. *". Cette erreur peut être ignorée en toute sécurité.

1.15 Le projet de routeur et le projet EJB doivent se trouver dans le même EAR

Tant pour les environnements d'exécution IBM SOAP qu'IBM WebSphere, le projet EJB et son projet de routeur doivent être placés dans le même EAR des scénarios de services Web EJB descendants ou ascendants.

1.16 Possibilité de visualiser les LooseApps via la console d'administration mais pas de les modifier

Via la console d'administration, il est possible de visualiser une application déployée dans Websphere Application Server v6, mais pas de la modifier. Si vous avez besoin de la totalité des fonctions de console pour une application Rational Developer, vous avez la possibilité de désélectionner dans l'éditeur de serveur UTE l'option d'exécution des ressources à partir de l'espace de travail. Du coup, l'UTE est traité comme un serveur éloigné avec génération et publication d'un fichier .ear.

2.0 Problèmes connus

2.1 Le scénario de bout en bout échoue avec IBM SOAP Skeleton Web Service

Si vous créez un squelette de service Web à partir d'un fichier WSDL à l'aide de l'environnement d'exécution IBM SOAP et que vous choisissez de générer un proxy dans le même assistant, la génération de ce proxy peut échouer ou ne pas se dérouler correctement. La solution consiste à générer d'abord le squelette de service Web, puis d'utiliser le WSDL résultant pour générer séparément le client.

2.2 Les scénarios de squelette et de clients ne fonctionnent pas avec le WSDL protégé par authentification HTTP de base

Dans l'édition actuelle, l'assistant de service Web ne peut créer de service Web de squelette ou de client de service Web à l'aide d'un fichier WSDL protégé par l'authentification HTTP de base. La solution consiste à utiliser un navigateur et à télécharger le WSDL dans le système de fichiers physique, et à exécuter l'assistant de service Web avec cette copie du fichier WSDL.

2.3 Message d'erreur dans le projet de routeur JMS après exécution de l'activateur de point d'extrémité

Après exécution de l'activateur de point d'extrémité du service Web pour créer un point d'extrémité JMS, l'erreur suivante est signalée depuis le fichier ejb-jar.xml dans le projet du routeur JMS, "CHKJ2802E : class com.ibm.ws.webservices.engine.transport.jms.JMSListenerMDB, ou l'un de ses supertypes, ne peut être reflété. Vérifiez le chemin d'accès aux classes. Ce message d'erreur peut être ignoré en toute sécurité.

2.4 Tutoriel : La création d'un service Web à partir d'un bean Java ne crée pas le bon nom pour le package

Dans le cadre du tutoriel de création et de déploiement d'un service Web à partir d'un bean Java, il vous est demandé d'importer le bean StockQuoteService à partir d'un dossier du nom de Resources. La structure des sous-dossiers de ce dossier est incorrecte, ce qui fait que le package qui est créé ne correspond pas au nom du package dans le bean Java.

Pour corriger cela, il vous suffit, lors de l'importation des ressources nécessaires, de sélectionner le dossier StockQuote et de désélectionner ses sous-dossiers. Une fois le dossier StockQuote importé, sélectionnez le package StockQuote, cliquez avec le bouton droit de la souris, sélectionnez Propager les modifications > Renommer, et renommez le package stockquote.

2.5 La suppression d'une taxinomie définie par l'utilisateur ne supprime pas le tModel du registre UDDI privé.

Lors de la suppression, à partir d'une table de l'assistant de registre UDDI privé, d'une taxinomie définie par l'utilisateur, si les données de la catégorie sont bien supprimées du registre, le tModel lui-même continue à être présent. L'explorateur de services Web continue à afficher la catégorie supprimée lors des recherches de catégories définies par l'utilisateur.

2.6 Génération de code en un emplacement erroné pour les services Web EJB avec prise en charge des annotations

Dans le cas où un EJB et un projet EJB ont été créés via la prise en charge des annotations, les interfaces home et éloignée de l'EJB sont créées dans le sous-dossier gen/src de l'EJB ou du projet de client EJB et non dans le dossier ejbModule. L'assistant de services Web va générer du code dans le dossier par défaut qui provient de la duplication des interfaces home et éloignée. Cela ne semble pas affecter l'exécution du service Web dans un scénario simple mais, pour éviter l'erreur de compilation, les utilisateurs peuvent transférer les interfaces home et éloignées du dossier gen/src vers le dossier ejbModule avant de lancer l'assistant de service Web.

2.7 Les exemples de services Web fournis dans la galerie d'exemples peuvent s'importer avec des erreurs

Si vous essayez d'importer un exemple de service Web WebSphere service à partir de la galerie d'exemples (WebSphere Stock Quote, Temperature Conversion or AddressBook) sans serveur WebSphere v6, les avertissements suivants s'afficheront :

Aucun environnement d'exécution de serveur WebSphere v6 n'a été détecté. Vous devrez définir manuellement cet environnement pour les projets importés après avoir installé un serveur WebSphere v6.

Si vous supprimez l'exemple importé, que vous ajoutez manuellement un serveur WebSphere v6 et que vous recommencez l'importation, l'exemple continuera à s'importer avec des erreurs de compilation dues à un échec du ciblage du serveur. Pour pallier ce problème, supprimez l'exemple, arrêtez le plan de travail, redémarrez et réimportez l'exemple.

2.8 Levage d'une exception dans le scénario client lorsque WSDL est dépourvu de liaisons SOAP

Si vous créez un client de service Web à l'aide de WebSphere Application Server v6.0, il lèvera une exception si vous utilisez un document WSDL qui ne contient pas de liaisons SOAP.

2.9 Les scénarios de squelettes n'actualisent pas les fichiers Java générés lors des appels ultérieurs à l'assistant de service Web

Si vous devez recréer dans le même projet un service Web existant à l'aide d'un fichier WSDL modifié, les fichiers Java générés ne seront pas actualisés. Il peut en résulter des erreurs de compilation ou une non-modification des fichiers Java. La solutions consiste à sauvegarder et à supprimer tous les fichiers Java générés avant d'exécuter l'assistant de service Web de squelette.

2.10 Levage d'une exception NullPointerException dans UDDIPublish/UDDIUnpublish -profileName <nom du profil>

Une exception NullPointerException est levée dans UDDIPublish/UDDIUnpublish -profileName <nom du profil>, si -inquiryUrl <url> n'est pas spécifiée avant -profileName. Vous n'aurez probablement pas besoin d'utiliser -profileName puisque la valeur définie par défaut correspond déjà au profil installé. Si vous avez besoin d'utiliser -profileName, vous devrez spécifier -inquiryUrl <url> avant -profileName <nom du profil>.

Retour au fichier Readme principal