Tipps zur Fehlerbehebung bei Web Services Invocation Framework

Dieser Artikel enthält Tipps, die Sie bei der Behebung von Problemen im Zusammenhang mit Web Services Invocation Framework (WSIF) unterstützen.

Anmerkung: Dieser Artikel referenziert eine oder mehrere Protokolldateien des Anwendungsservers. Alternativ dazu wird empfohlen, den Server so zu konfigurieren, dass er die HPEL-Protokoll- und -Traceinfrastruktur (High Performance Extensible Logging) verwendet und nicht die Dateien SystemOut.log , SystemErr.log, trace.log und activity.log auf verteilten oder IBM® i-Systemen. Sie können HPEL auch in Verbindung mit Ihren nativen z/OS-Protokolleinrichtungen verwenden. Wenn Sie HPEL verwenden, können Sie mit dem Befehlszeilentool LogViewer im Verzeichnis "bin" des Serverprofils auf alle Ihre Protokoll- und Tracedaten zugreifen. Weitere Informationen zur Verwendung von HPEL finden Sie in der Dokumentation zum Einsatz von HPEL für die Fehlerbehebung in Anwendungen.

Informationen zur Behebung von Fehlern auf der Ebene von WebSphere Application Server finden Sie im Artikel Fehler diagnostizieren (mit Diagnosetools).

Zum Identifizieren und Beheben von Problemen, die sich auf WSIF beziehen, können Sie die Standardfunktionen für Traceerstellung und Protokollierung von WebSphere Application Server verwenden. Wenn ein Fehler auftritt, den Sie für einen WSIF-Fehler halten, können Sie in der Administrationskonsole von WebSphere Application Server und in der Datei stdout.log des Anwendungsservers prüfen, ob Fehlernachrichten vorhanden sind. Sie können auch den Debug-Trace des Anwendungsservers aktivieren, um einen ausführlichen Ausnahmespeicherauszug zu erhalten.

Eine Liste der Systemnachrichten für die WSIF-Laufzeit mit Beschreibungen der einzelnen Nachrichten ist im im Artikel WSIF-Nachrichten (Web Services Invocation Framework) enthalten.

Eine Liste der bekannten Haupteinschränkungen, die für die Verwendung von WSIF gelten, finden Sie im Artikel WSIF - Bekannte Einschränkungen.

Es folgt eine Prüfliste der wichtigsten WSIF-Aktivitäten mit Hinweisen zu allgemeinen taskspezifischen Problemen:

Service herstellen
[AIX Solaris HP-UX Linux Windows][z/OS]

Eine manuell erstellte WSDL-Datei (Web Services Description Language) kann zu zahlreichen Fehlern führen. Um sicherzustellen, dass Ihre WSDL-Datei gültig ist, erstellen Sie Ihren Web-Services mit einem Tool wie WebSphere Studio Application Developer (WSAD).

[IBM i]

Eine manuell erstellte WSDL-Datei (Web Services Description Language) kann zu zahlreichen Fehlern führen. Wenn Sie Ihren Service mit einem Tool wie WebSphere Development Studio for System i erstellen, können Sie gewährleisten, dass Ihre WSDL-Datei gültig ist.

Transportmechanismus definieren
Wenn Sie Java™ Message Service (JMS) verwenden möchten, müssen Sie Java Naming and Directory Interface (JNDI) ordnungsgemäß konfigurieren und die erforderlichen Verbindungsfactorys und Warteschlangen erstellen.
[AIX Solaris HP-UX Linux Windows][z/OS]Wenn Sie SOAP verwenden möchten, müssen Sie sicherstellen, dass die Implementierungsdeskriptordatei dds.xml korrekt ist. Verwenden Sie deshalb zum Erstellen dieser Datei WebSphere Studio Application Developer (WSAD) oder ein vergleichbares Tool.
[IBM i]Wenn Sie SOAP verwenden möchten, müssen Sie sicherstellen, dass die Implementierungsdeskriptordatei dds.xml korrekt ist. Verwenden Sie deshalb zum Erstellen dieser Datei WebSphere Development Studio for System i oder ein vergleichbares Tool.
Client erstellen - Java-Code

Verwenden Sie beim Erstellen eines WSIF-Service, eines WSIF-Ports, einer WSIF-Operation und einer WSIF-Nachricht das richtige Format. Beispiele für korrekten Code finden Sie im Artikel Beispiel: Mit WSIF den Beispiel-Web-Service "AddressBook" dynamisch aufrufen.

Code kompilieren (Client und Service)
Überprüfen Sie, ob der Build-Pfad für den Code stimmt und dass er die richtigen Versionen der JAR-Dateien enthält.
Erstellen Sie eine gültige EAR-Datei für Ihren Service, um die Implementierung in einem Web-Server vorzubereiten.
Service implementieren
Wenn Sie die EAR-Datei des Service installieren und implementieren, überprüfen Sie sorgfältig alle bei der Implementierung ausgegebenen Nachrichten.
Server konfigurieren und starten

Vergewissern Sie sich, dass die Datei server.policy von WebSphere Application Server (im Verzeichnis /properties) die richtigen Sicherheitseinstellungen enthält. Weitere Informationen hierzu finden Sie im Artikel WSIF sichern.

WSIF-Konfiguration

Überprüfen Sie, ob die Datei wsif.properties ordnungsgemäß konfiguriert ist. Weitere Informationen hierzu finden Sie im Artikel Datei wsif.properties - Anfangsinhalt.

Client ausführen

Überprüfen Sie, ob Sie den Klassenpfad so definiert haben, dass er Verweise auf Ihre Clientklassen, WSIF-JAR-Dateien und alle weiteren erforderlichen JAR-Dateien enthält, oder führen Sie (vorzugsweise) Ihren Client mit dem WebSphere Application Server-Tool launchClient aus.

Überprüfen Sie, ob Sie den Klassenpfad so definiert haben, dass er Verweise auf Ihre Clientklassen, WSIF-JAR-Dateien und alle weiteren erforderlichen JAR-Dateien enthält, oder führen Sie (vorzugsweise) Ihren Client mit dem WebSphere Application Server-Tool "launch client" aus. Weitere Informationen zu diesem Tool finden Sie im Kapitel "Running application clients" des Handbuchs Developing and deploying applications, das als PDF-Datei verfügbar ist.

Keine Klassendefinition - Fehler dieser Art werden beim Ausführen des Clientcodes empfangen.

Dieses Problem weist in der Regel auf einen Fehler in der Konfiguration des Klassenpfades hin. Überprüfen Sie, ob die relevanten JAR-Dateien im Pfad enthalten sind.

Fehler "WSDL nicht gefunden"

Wahrscheinliche Ursachen sind unter anderem:

  • Der Anwendungsserver ist nicht aktiv.
  • Position und Portnummer des Servers sind in der WSDL nicht richtig angegeben.
  • Das WSDL-Format ist fehlerhaft. (Überprüfen Sie die Fehlernachrichten in der Datei stdout.log des Anwendungsservers.)
  • Der Anwendungsserver wurde seit Installation des Service nicht neu gestartet.

Überprüfen Sie bei Bedarf außerdem Folgendes:

  • Kann die WSDL von der in der Fehlernachricht angegebenen Position aus in Ihren Webbrowser geladen werden?
  • Können Sie die entsprechenden WSDL-Bindungsdateien in Ihren Webbrowser laden?

EAR-Datei des Web-Service wird nicht ordnungsgemäß im Anwendungsserver installiert

Die EAR-Datei hat wahrscheinlich ein ungültiges Format. Überprüfen Sie die Installation, indem Sie die folgenden Schritte ausführen:
  • Führen Sie für eine EJB-Bindung das WebSphere Application Server-Tool \bin\dumpnamespace aus. Dieses Tool listet den aktuellen Inhalt des JNDI-Verzeichnisses auf.
  • Öffnen Sie für eine SOAP-over-HTTP-Bindung die Seite http://Pfad_zum_Server/Name_des_Web-Service/admin/list.jsp (sofern Sie die SOAP-Administrationsseiten installiert haben). Diese Seite listet alle derzeit installierten Web-Services auf.
  • Gehen Sie bei SOAP-JMS-Bindung wie folgt vor:
    • Prüfen Sie, ob der Warteschlangenmanager aktiv ist.
    • Prüfen Sie, ob die erforderlichen Warteschlangen definiert sind.
    • Überprüfen Sie die JNDI-Konfiguration.
    • Verwenden Sie die Option "display context" des Tools jmsadmin, um die aktuellen JNDI-Definitionen aufzulisten.
    • Vergewissern Sie sich, dass der RPC-Router (Remote Procedure Call) aktiv ist.

Berechtigungsproblem oder Sicherheitsfehler

Vergewissern Sie sich, dass die Datei server.policy von WebSphere Application Server (im Verzeichnis /properties) die richtigen Sicherheitseinstellungen enthält. Weitere Informationen hierzu finden Sie im Artikel WSIF sichern.

Wenn Sie WSIF mit mehreren Clients verwenden, wird ein Fehler bei der SOAP-Syntaxanalyse ausgelöst

Bevor Sie einen Web-Service für den WebSphere Application Server implementieren können, müssen Sie den Geltungsbereich des Web-Service festlegen. Die Implementierungsdeskriptordatei dds.xml für den Web-Service enthält die folgende Zeile:

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

Sie können das Attribut Scope auf Application oder Session setzen. Die Standardeinstellung ist Application und kann verwendet werden, wenn für jede Anforderung an den Web-Service Objekte nur für die Lebensdauer einer einzelnen Instanz verwaltet werden müssen. Wenn Scope auf Application eingestellt ist, sind die Objekte bei der Ausführung der einzelnen Instanz nicht für eine andere Ausführung verfügbar und werden nach Abschluss des Vorgangs freigegeben. Wenn der Web-Service erfordert, dass Objekte für mehrere Anforderungen verwaltet werden und innerhalb der einzelnen Anforderungen eindeutig sein müssen, müssen Sie den Bereich (Scope) auf Session einstellen. Wenn Scope auf Session eingestellt ist, sind die Objekte während der Lebensdauer der Sitzung nicht für eine andere Ausführung verfügbar und werden nach Abschluss der Sitzung freigegeben. Falls der Geltungsbereich auf Application und nicht auf Session eingestellt ist, kann der folgende SOAP-Fehler angezeigt werden:

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.]

Wenn Sie dieselben Namen für JMS-Messaging-Warteschlangen und Verbindungsfactorys für JMS-Warteschlangen, die in Anwendungsservern auf verschiedenen Maschinen ausgeführt werden, verwenden, können JNDI-Lookup-Fehler auftreten

Sie sollten für Messaging-Warteschlangen und Verbindungsfactorys für Warteschlangen, die in Anwendungsservern verschiedener Maschinen ausgeführt werden, nicht denselben Namen verwenden, da das Web Services Invocation Framework (WSIF) immer zuerst lokal nach JMS-Zieladressen sucht und die vollständige JNDI-Referenz nur verwendet, wenn es die Zieladresse lokal nicht ermitteln kann. Wenn Sie einen Web-Service auf einer fernen Maschine und einen Anwendungsserver, der dieselben Namen für die Messaging-Warteschlangen und Verbindungsfactorys für Warteschlangen verwendet, lokal ausführen, findet und verwendet WSIF die lokalen Warteschlangen, selbst wenn die ferne JNDI-Zieladresse in der WSDL-Servicedefinition vollständig angegeben ist.

Ein JAX-RPC-Client, der in WebSphere Application Server Version 5 ausgeführt wird, verwendet SOAP over JMS, um einen Web-Service aufzurufen, der in einem Anwendungsserver der Version 5 ausgeführt wird.

Ein JAX-RPC-Client, der in WebSphere Application Server Version 5 ausgeführt wird, verwendet SOAP over JMS, um einen Web-Service aufzurufen, der in einem Anwendungsserver der Version 5 ausgeführt wird. Für die MQ-Series-Zielwarteschlange sind weder Benutzer-ID noch Kennwort erforderlich. Wenn Sie den Anwendungsserver auf Version 6 migriert haben und jetzt das Standard-Messaging der Version 6 verwenden, schlagen Clientanforderungen fehl, weil die Basisauthentifizierung jetzt aktiviert ist.

Der Fehler wird als Protokollnachricht aufgezeichnet:
SibMessage W [:] CWSIT0009W: CWSIT0009W: Eine Clientanforderung ist im Anwendungsserver mit Endpunkt
<Endpunktname> in Bus <Busname> mit dem Ursachencode "CWSIT0016E:
Die Benutzer-ID null konnte in Bus <Busname> nicht authentifiziert werden" fehlgeschlagen.

Die Schritte, die zur Behebung des Problems ausgeführt werden müssen, sind im folgenden Fehlerbehebungstipp für Serviceintegrationstechnologien beschrieben: Anwendungsserver der Version 5.1 auf WebSphere Application Server Version 7.0 oder höher migrieren.

Der aktuelle WSIF-SOAP-Standardprovider (der Provider IBM Web Service SOAP) unterstützt keine vollständige Interaktion mit Services, die unter dem früheren Provider (Apache SOAP) ausgeführt werden

Diese Einschränkung ist darauf zurückzuführen, dass der Provider IBM Web Service SOAP für eine vollständige Interaktion mit JAX-RPC-kompatiblen Web-Services bestimmt ist und Apache SOAP nicht in der Lage ist, einen solchen Service bereitzustellen. Zum Aktivieren der Interoperation müssen Sie entweder Ihren Web-Service oder den WSIF-Standard-SOAP-Provider gemäß den Anleitungen im Artikel WSIF-SOAP-Provider: Mit vorhandenen Anwendungen arbeiten ändern.


Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwsf_trouble
Dateiname:rwsf_trouble.html