Ce fichier contient la liste exhaustive des limitations, permanentes et temporaires, ayant un impact sur les services Web.
Les limitations que vous pouvez rencontrer lorsque vous utilisez des services Web peuvent être classées dans deux sections :
Problèmes rencontrés lors de l'utilisation d'un serveur WebSphere Application
Server sécurisé
Vous pouvez rencontrer le message d'erreur suivant : Message d'erreur SSLSocketFactory : java.net.SocketException: java.lang.ClassNotFoundException:
Classe spécifiée com.ibm.websphere.ssl.protocol.SSLSocketFactory introuvable
Avant d'utiliser l'explorateur de services Web, de générer des exemples de fichier JSP, de créer un service Web ou un client à partir d'un fichier WDSL HTTPS ou de déployer un service Web Axis, vous devez configurer le plan de travail pour qu'il communique avec un serveur via le protocole Secure Sockets Layer (SSL). La rubrique suivante contient des informations sur cette tâche : Problèmes liés à l'utilisation d'un serveur sécurisé avec des connexions SSL.
Vous pouvez rencontrer le message d'erreur suivant : Error
opening socket: javax.net.ssl.SSLHandshakeException: unknown certificate (Erreur lors de l'ouverture du socket : javax.net.ssl.SSLHandshakeException: certificat inconnu)
Pour utiliser l'assistant des services Web afin d'extraire un fichier WSDL HTTPS ou d'utiliser l'explorateur de services Web sur un serveur WebSphere Application Server sécurisé, effectuez les étapes décrites dans la rubrique Configuration de l'environnement d'exécution Java IBM® pour la communication avec un serveur WebSphere Application Server sécurisé.
Problèmes rencontrés lors de l'utilisation de l'assistant de services Web
- Si vous cliquez sur Annuler à mi-chemin dans l'un des assistants de services Web, il se peut que des entrées de service Web apparaissent dans les descripteurs de déploiement et les fichiers générés dans votre espace de travail.
Supprimez manuellement ces fichiers après avoir fermé l'assistant.
- Les assistants de services Web ne parviennent pas à publier des fichiers EAR
Problème : lorsqu'un serveur distant est créé avec l'environnement d'exécution du module de remplacement, le fichier EAR n'est pas publié.
Cause : l'assistant de services Web ne peut pas déterminer si un serveur peut être démarré ou non.
Solution : dans une perspective dans laquelle la vue Serveurs est disponible, cliquez avec le bouton droit de la souris sur le serveur distant et sélectionnez Ajout et suppression de projets. Sélectionnez le projet et ajoutez-le au serveur.
- Les assistants de services Web ne parviennent pas à consommer le type de projet choisi
Problème : si vous tentez d'exécuter les assistants de services Web sur un fichier EAR qui contient un projet client d'application Java EE et que l'option Installer le service Web sur le serveur est sélectionnée, ou sur un projet EJB qui ne contient pas d'EJB, vous ne pouvez pas utiliser l'assistant pur générer le service Web.
Cause : les assistants de services Web vérifient qu'ils peuvent consommer le type de projet sélectionné dans la troisième page de l'assistant. Si ce n'est pas le cas, vous ne pouvez pas continuer.
Solution : si vous annulez l'assistant et l'exécutez à nouveau sans sélectionner l'option
Installer le service Web sur le serveur ou si vous ajoutez un EJB à un projet EJB, vous pouvez continuer l'assistant.
- Si un fichier WSIL est sélectionné dans l'espace de travail et que l'assistant de services Web est lancé, ce dernier indique que la sélection n'est pas valide car un fichier WSDL doit être sélectionné depuis le fichier WSIL.
Pour résoudre ce problème, cliquez sur Parcourir dans l'assistant de services Web pour sélectionner un fichier WSDL spécifique.
- L'assistant de services Web peut générer une erreur au cours de la création d'un service Web si le nom du projet Web cible inclut des caractères autres que des caractères latin-1. Le problème survient car les générateurs de code de services Web calculent les adresses URL HTTP en fonction du nom de projet et que les caractères autres que les caractères latin-1 ne sont pas admis dans les adresses URL HTTP. Pour résoudre ce problème, utilisez des noms de projet comportant des caractères latin-1 seulement.
- Si vous disposez de plusieurs projets EAR dans l'espace de travail et que vous sélectionnez Beans EJB dans un projet EJB, puis lancez l'assistant de services Web, il se peut que le bean enterprise sélectionné ne soit pas sélectionné lorsque l'assistant s'ouvre. Dans la boîte de dialogue Sélection de l'implémentation du service, le projet EAR qui est sélectionné est le premier par ordre alphabétique dans l'espace de travail, et non le projet EAR associé au projet EJB contenant le bean. Pour résoudre ce problème, dans la boîte de dialogue Sélection de l'implémentation du service, sélectionnez manuellement le projet EAR de votre choix.
- Lorsque vous choisissez de surveiller le trafic des services Web dans la première page de l'assistant de services Web, il peut arriver que la vue Moniteur TCP/IP ne s'affiche pas automatiquement. Vous pouvez l'ouvrir manuellement en sélectionnant . La demande et la réponse pour le service Web sont affichées dans cette vue.
Problèmes rencontrés lors de l'utilisation d'un environnement d'exécution WebSphere JAX-WS et de JAXB
Limitations lors de la création d'un client de service Web
Lorsque vous déployez un client de service Web dans un projet EJB, dans la page de configuration du proxy, vous devez sélectionner l'EJB qui constitue la portée du client de service Web. Cette sélection est une exigence définie par JSR-109, où l'élément
component-name d'un élément component-scoped-refs doit correspondre à l'élément ejb-name d'un EJB dans le module.
Lorsqu'il existe un EJB au moins dans le projet, aucune erreur ne survient. Toutefois, s'il n'existe pas d'EJB dans le projet, vous pouvez éditer les options de la page de configuration du proxy et définir une valeur par défaut égale au nom du service du WSDL, avec le suffixe "EJB". De plus, l'assistant du client affiche un avertissement qui indique que le déploiement est incomplet car le client de service Web n'a pas pour portée un EJB existant. Vous pouvez corriger cette erreur en créant un EJB avec le même nom que l'élément component-name utilisé dans webservicesclient.xml.
Toutefois, si vous choisissez de mettre fin à la création du client en annulant l'assistant, ce dernier ne supprime pas l'élément component-scoped-refs incomplet dans le fichier webservicesclient.xml. Vous devez supprimer manuellement l'élément component-scoped-refs incomplet avant le redéploiement.
Limitations des exemples de page JSP de service Web
- Les exemples de page JSP de service Web ne proposent pas de prise en charge pour les méthodes qui admettent des tableaux ou des collections comme paramètres. De telles méthodes sont omises dans le panneau des méthodes des exemples de page JSP.
Problèmes liés à l'explorateur de services Web
- Lorsque l'explorateur de services Web charge des fichiers WSDL qui utilisent plusieurs schémas intégrés, des messages d'avertissement sont générés pour des types qui sont référencés dans ces schémas. Ce message est similaire au suivant : La référence du type <nom_type_qualifié> n'est pas résolue. Il ne s'agit pas d'erreurs mais d'avertissements qui n'interfèrent pas avec la capacité de l'explorateur de services Web à démarrer des opérations. Par conséquent, vous pouvez les ignorer.
- L'explorateur de services Web ne prend pas en charge l'appel de services Web via l'authentification de serveurs proxy qui utilisent un protocole autre que l'authentification de base HTTP, tel que NTLM. Si l'explorateur de services Web ne parvient pas à se connecter au service Web choisi pour une raison quelconque, il affiche dans son panneau de résultats l'erreur IWAB0135E
Une erreur inattendue s'est produite, suivie d'informations sur l'échec provenant de la réponse HTTP.
Pour résoudre ce problème, utilisez un serveur proxy appliquant l'authentification de base HTTP.
- L'explorateur de services Web génère des erreurs lorsque vous passez de la vue source à la vue de formulaire si le schéma utilise des choix contenant des séquences.
Si vous utilisez un élément de choix dans un élément complexType, que le choix contient deux éléments ou plus incluant une séquence, et que vous passez de la vue de formulaire à la vue source, il se peut que l'explorateur de services Web ne soit pas capable de convertir correctement le fragment XML correspondant dans la vue source lorsque vous revenez à la vue de formulaire sans perte de données. Pour résoudre ce problème, démarrez la séquence depuis la vue de formulaire lorsque les données sont entrées initialement. Dans cette configuration, il n'est pas recommandé d'utiliser la vue source. Si la vue source est utilisée, ne revenez pas à la vue de formulaire.
- L'explorateur de services Web importe le fichier WSDL sans résoudre les adresses URL d'importation relatives. Lorsque vous utilisez l'explorateur de services Web, un problème survient lorsque vous importez un fichier WSDL de la page WSDL dans l'espace de travail. Si l'option Importer comme référence de service dans un document WSIL est sélectionnée, il s'agit de l'adresse URL d'origine du fichier WSDL et par conséquent, tous les importations relatives sont inaccessibles. Si l'option Importer le document WSDL est sélectionnée et que le fichier WSDL contient des importations relatives, ces importations ne sont plus accessibles, ce qui rend la copie du fichier WSDL difficile ou le traitement du fichier WSDL impossible ailleurs dans les outils. S'il existe des importations relatives dans le fichier WSDL que vous importez, utilisez la méthode WSIL. Si vous devez copier le fichier WSDL, vérifiez manuellement les importations relatives après l'importation afin de résoudre les liens rompus.
Problèmes lors de l'utilisation de l'outil de ligne de commande des services Web
- L'importation d'un fichier EAR contenant un client EJB généré par les outils de ligne de commande avec Java EE 1.4 dans l'espace de travail génère des erreurs de compilation. Pour corriger les erreurs, cliquez avec le bouton droit de la souris sur le projet EJB et sélectionnez Propriétés. Accédez à Chemin de génération Java et sélectionnez l'onglet Bibliothèques. Supprimez l'entrée EJBClientProject/imported_classes(class folder). Ajoutez le dossier de classe EJBServiceClient/imported_classes/Meta-inf/classess. Cliquez sur
OK.
- Après avoir importé un fichier EAR contenant un client d'application généré par les outils de ligne de commande avec Java EE 1.4 dans l'espace de travail, vous obtenez une erreur ClassNotFoundException lorsque vous exécutez le client. Pour corriger les erreurs, cliquez avec le bouton droit de la souris sur le projet client d'application et sélectionnez Propriétés. Accédez à Chemin de génération Java et sélectionnez l'onglet Bibliothèques.
Supprimez l'entrée ApplicationClientProject/imported_classes(class
folder). Ajoutez le dossier de classe ApplicationClientProject/imported_classes/Meta-Inf/classess. Cliquez sur
OK.
- Les tâches Ant de services Web qui ciblent l'environnement d'exécution Axis traitent la génération des services Web mais pas leur déploiement. Par conséquent, les services Web Axis qui sont créés avec les tâches Ant ne sont pas accessibles sur le serveur en cours d'exécution tant que vous ne déployez pas manuellement vos services avec l'utilitaire natif AdminClient d'Apache Axis. Déployez le fichier deploy.wsdd généré dans les sous-répertoires du répertoire WebContent/WEB-INF du projet Web dans Axis manuellement à l'aide de l'outil AdminClient d'Axis. Reportez-vous à la section relative à l'utilisation d'AdminClient dans le guide d'utilisation d'Axis 1.4 pour plus de détails.