Conseils de résolution des incidents WSIF (Web Services Invocation Framework)

La présente rubrique présente un ensemble de conseils spécifiques destinés à vous aider à identifier et à résoudre les incidents liés à WSIF (Web Services Invocation Framework).

Remarque : Cette rubrique fait référence à un ou plusieurs des fichiers journaux de serveur d'applications. Il est recommandé de configurer le serveur de telle sorte qu'il utilise l'infrastructure de journalisation et de trace HPEL (High Performance Extensible Logging) à la place des fichiers SystemOut.log, SystemErr.log, trace.log et activity.log sur les systèmes distribués et IBM® i. Vous pouvez également utiliser HPEL conjointement avec vos fonctions de journalisation z/OS natives. Si vous utilisez l'infrastructure HPEL, vous pouvez accéder à toutes les informations de journalisation et de trace en utilisant l'outil de ligne de commande LogViewer à partir de votre répertoire bin de profil de serveur. Pour plus d'informations sur l'utilisation de HPEL, voir les informations sur l'utilisation de HPEL en vue du traitement des incidents liés aux applications.

Pour plus d'informations sur la résolution des incidents liés à WebSphere Application Server, voir Diagnostic des incidents (à l'aide des outils de diagnostic).

Pour identifier et résoudre les incidents liés à WSIF, vous pouvez utiliser les fonctions de trace et de journalisation standard de WebSphere Application Server. Si vous rencontrez un problème lié selon vous à WSIF, consultez les messages d'erreur dans la console d'administration de WebSphere Application Server et dans le fichier stdout.log du serveur d'applications. Vous pouvez également activer la trace de débogage du serveur d'applications pour fournir un vidage détaillé des exceptions.

La section Référence des messages de WSIF répertorie les messages système qui peuvent être générés à l'exécution de WSIF et donne des détails sur leur signification.

Une liste des principales limitations connues s'appliquant lors de l'utilisation de WSIF est fournie dans WSIF - Limitations connues.

La liste suivante répertorie les principales tâches en rapport avec WSIF, avec les problèmes courants que vous pouvez rencontrer en les exécutant :

Création d'un service
[AIX Solaris HP-UX Linux Windows][z/OS]

Les fichiers WSDL (Web Services Description Language) créés manuellement peuvent entraîner d'innombrables problèmes. Pour garantir la validité du fichier WSDL du service Web que vous créez, utilisez un outil tel que WSAD (WebSphere Studio Application Developer).

[IBM i]

Les fichiers WSDL (Web Services Description Language) créés manuellement peuvent entraîner d'innombrables problèmes. Pour garantir la validité du fichier WSDL du service Web que vous créez, utilisez un outil tel que WDS (WebSphere Development Studio for System i).

Définition d'un mécanisme de transport
Dans le cas de JMS (Java™ Message Service), vérifiez que vous avez défini l'interface JNDI (Java Message Service Naming and Directory Interface) correctement et créé les fabriques de connexions et les files d'attente nécessaires.
[AIX Solaris HP-UX Linux Windows][z/OS]Dans le cas de SOAP, assurez-vous que le fichier du descripteur de déploiement dds.xml est correct, le mieux étant de le créer en utilisant un outil tel que WSAD (WebSphere Studio Application Developer).
[IBM i]Dans le cas de SOAP,assurez-vous que le fichier du descripteur de déploiement dds.xml est correct, le mieux étant de le créer en utilisant un outil tel que WDS (WebSphere Development Studio for System i).
Création d'un client - Code Java

Conformez-vous au format préconisé pour la création de services WSIF, de ports, d'opérations et de messages. Pour obtenir un exemple de code, voir Exemple : Utilisation de WSIF pour un appel dynamique du modèle de service Web AddressBook.

Compilation du code (client et service)
Vérifiez que le chemin de génération est correct et qu'il contient les niveaux corrects de fichiers JAR.
Créez un fichier EAR valide pour votre service en prévision de son déploiement sur un serveur web.
Déploiement d'un service
Lorsque vous installez et déployez le fichier EAR de votre service, étudiez attentivement les éventuels messages générés au moment du déploiement.
Configuration et démarrage du serveur

Vérifiez que le fichier server.policy de WebSphere Application Server (dans le répertoire /properties) possède les paramètres de sécurité appropriés. Pour plus d'informations, voir Sécurisation de WSIF.

Configuration de WSIF

Vérifiez que le fichier wsif.properties est correctement configuré. Pour plus d'informations, voir Fichier wsif.properties - Contenu initial.

Exécution d'un client

Vérifiez que vous avez défini le chemin de classes correctement et qu'il inclut les références aux classes de votre client, aux fichiers JAR de l'API WSIF et à tout autre fichier JAR nécessaire ou (de préférence) exécutez votre client en utilisant l'outil launchClient de WebSphere Application Server.

Vérifiez que vous avez défini le chemin des classes correctement et qu'il inclut les références aux classes de votre client, aux fichiers JAR de l'API WSIF et à tout autre fichier JAR nécessaire ou (de préférence) exécutez votre client en utilisant l'outil client de lancement de WebSphere Application Server. Pour plus d'informations sur cet outil, voir chapitre relatif aux clients d'application en cours d'exécution du PDF Développement et déploiement des applications.

Erreurs de type No class definition (pas de définition de classe) reçues lors de l'exécution du code client

Cet incident signale une erreur dans la configuration du chemin d'accès aux classes. Vérifiez que les fichiers JAR adéquats y sont inclus.

Erreur de type Cannot find WSDL

Quelques causes possibles :

  • Le serveur d'applications n'est pas actif.
  • L'emplacement et le numéro de port du serveur indiqués dans le fichier WSDL ne sont pas corrects.
  • Le fichier WSDL est erroné (vérifiez les messages d'erreur dans le fichier stdout.log du serveur d'applications).
  • Le serveur d'applications n'a pas été relancé depuis que le service a été installé.

Vous pouvez également vérifier les points suivants :

  • Etes-vous en mesure de charger le fichier WSDL dans votre navigateur web à partir de l'emplacement spécifié dans le message d'erreur ?
  • Pouvez-vous charger les fichiers de liaison WSDL correspondants dans votre navigateur Web ?

Le fichier EAR de service Web ne s'installe pas correctement sur le serveur d'applications

Le format du fichier EAR est probablement incorrect. Vérifiez l'installation en effectuant les étapes suivantes :
  • Pour une liaison EJB, exécutez l'outil \bin\dumpnamespace de WebSphere Application Server. Cet outil répertorie le contenu actuel du registre JNDI.
  • Pour une liaison SOAP sur HTTP, ouvrez le fichier http://cheminDuServeur/nomServiceWeb/admin/list.jsp (si les pages d'administration de SOAP sont installées). Cette page dresse la liste de tous les services Web actuellement installés.
  • Pour une liaison SOAP sur JMS, procédez aux vérifications suivantes :
    • Vérifiez que le gestionnaire de files d'attente est actif.
    • Vérifiez que les files de messages nécessaires sont définies.
    • Vérifiez la configuration de JNDI.
    • Utilisez l'option "display context" de l'outil jmsadmin pour répertorier les définitions JNDI en cours.
    • Vérifiez que le routeur RPC (Remote Procedure Call) est actif.

Problème de droits d'accès ou erreur liée à la sécurité

Vérifiez que le fichier server.policy de WebSphere Application Server (dans le répertoire /properties) possède les paramètres de sécurité appropriés. Pour plus d'informations, voir Sécurisation de WSIF.

L'utilisation de WSIF avec plusieurs clients génère une erreur d'analyse SOAP

Avant de déployer un service Web sur le système WebSphere Application Server, vous devez en déterminer la portée. Le fichier de descripteur de déploiement dds.xml du service Web contient la ligne suivante :

    <isd:provider type="java" scope="Application" ......

Vous pouvez associer l'attribut Scope à Application ou à Session. Par défaut, la valeur est Application, ce qui est correct si chaque demande adressée au service Web ne nécessite pas d'objets d'une durée supérieure à celle d'une instance. Si Scope est associé à la valeur Application, les objets ne sont pas disponibles pour d'autres demandes lors de l'exécution de l'instance et sont libérés au terme de celle-ci. Si votre service Web doit gérer des objets pour plusieurs demandes et que chaque objet ne doit être disponible que pour une seule demande, vous devez opter pour une portée de type Session. Si Scope correspond à Session, les objets ne sont pas disponibles pour d'autres demandes lors de la session et ils sont libérés au terme de celle-ci. Si la portée a pour valeur Application au lieu de Session, il se peut que l'erreur SOAP suivante se produise :

SOAPException: SOAP-ENV:ClientParsing error, response was:
FWK005 parse might not be called while parsing.;
nested exception is:

[SOAPException: faultCode=SOAP-ENV:Client; msg=Parsing error, response was:

FWK005 parse might not be called while parsing.; 
        targetException=org.xml.sax.SAXException:
FWK005 parse might not be called while parsing.]

L'utilisation de noms identiques pour les files d'attente de messageries JMS et les fabriques de connexions de fil d'attente exécutées sur des serveurs d'applications installés sur des systèmes différents peut générer des erreurs de recherche JNDI

Vous ne devez pas utiliser des noms identiques pour les files d'attente de messageries et les fabriques de connexions de file d'attente exécutées sur des serveurs d'applications installés sur des systèmes différents car WSIF recherche d'abord des destinations JMS en local et utilise uniquement la référence JNDI complète s'il ne peut trouver l'emplacement en local. Par exemple, si vous exécutez un service Web sur un système éloigné et qu'un serveur d'applications exécuté en local utilise les mêmes noms pour les files d'attente de messagerie et les fabriques de connexions de file d'attente, WSIF recherche et utilise les files d'attente locales même si la destination JNDI éloignée est indiquée dans son intégralité dans la définition de service WSDL.

Un client JAX-RPC en cours d'exécution sur WebSphere Application Server version 5 utilise SOAP sur JMS pour appeler un service Web en cours d'exécution sur un serveur d'applications version 5

Un client JAX-RPC en cours d'exécution sur WebSphere Application Server version 5 utilise SOAP sur JMS pour appeler un service Web en cours d'exécution sur un serveur d'applications version 5 Aucun ID utilisateur ou mot de passe n'est requis sur la file d'attente MQ Series cible. Une fois le serveur d'applications migré vers la version 6 et lorsque vous utilisez la messagerie par défaut de la version 6, les demandes client n'aboutissent pas car l'authentification de base est activée.

Le problème se manifeste par le message suivant dans le journal :
SibMessage W [:] CWSIT0009W: Une requête client a échoué sur le serveur d'applications.
le noeud final <nom_noeud_final> dans le bus <votre_bus> pour la raison ci-après : CWSIT0016E: 
L'ID utilisateur de valeur null a échoué l'identification dans le bus <votre_bus>.

Pour connaître la procédure à suivre pour résoudre l'incident, voir le conseil de résolution des incidents pour les technologies d'intégration de services suivant : Migration d'un serveur d'applications Version 5.1 vers WebSphere Application Server Version 7.0 ou ultérieures

Le fournisseur SOAP par défaut actuel de WSIF (c'est-à-dire le fournisseur SOAP du service Web IBM) n'interagit pas complètement avec les services exécutés sur l'ancien fournisseur (Apache SOAP)

En effet, le fournisseur SOAP du service Web IBM est conçu pour interagir à tous les niveaux avec un service compatible avec JAX-RPC, alors qu'Apache SOAP ne peut pas fournir un tel service. Pour permettre l'interaction, modifiez votre service Web ou le fournisseur SOAP par défaut de WSIF (voir Fournisseur SOAP de WSIF : utilisation des applications existantes).


Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwsf_trouble
Nom du fichier : rwsf_trouble.html