Tools für Webservices - Release-Informationen

1.0 Einführung
2.0 Unterstützte Software und Spezifikationen
3.0 Änderungen seit dem letzten Release
4.0 Bekannte Probleme
   4.1 Webservice-Explorer
   4.2 Private UDDI-Registrierung
   4.3 Interoperabilität mit IBM SOAP-Laufzeit
   4.4 Ein WSDL-Dokument aus einer DADX-Datei generieren
   4.5 Webtools - JSP-Generator
   4.6 Universellen Testclient verwenden
   4.7 Mehrfachausgabe ist bei DADX-Webservices in bestimmten Fällen erlaubt
   4.8 Vorgabe für JDBC-Treiber gilt nur für Verwendung unter Linux
   4.9 DAD-Beispieldateien müssen aktualisiert werden, wenn XML-Extender nicht im Standardverzeichnis installiert ist
   4.10 Probleme bei DADX-Webservices
   4.11 Unterstützung für die DADX-Generierung
   4.12 WSDL-Fehler nach dem Importieren einer Webservice-Datei aus 4.0.x
   4.13 Probleme bei der Verwendung der Befehlszeile der Webservices
   4.14 Erstellung von Webservices ohne vorhandenen Server
   4.15 Beispielanwendung für Webservices generieren
   4.16 WSDL-Dateien mit HTTP-Basisauthentifizierung importieren
   4.17 Probleme mit der Verwendung der WebSphere v5.0.2-Laufzeit
   4.18 Eine DADX-Gruppe mit Datenquelleninformationen einrichten
   4.19 Client-Locator mit dem Universellen Testclient laden
   4.20 Benutzervorgaben für Ressourcen werden nicht berücksichtigt
   4.21 Probleme bei der Verwendung der Apache Axis 1.0-Laufzeit
   4.22 Kompilieren des Webservicebeispiels für JSP schlägt fehl
   4.23 Problem mit der Webservices-Befehlszeile für Deutsch
   4.24 Fehler bei nicht definiertem lokalen Host (localhost)
   4.25 Dauerhafte Einschränkungen bei der Verwendung der IBM SOAP-Laufzeit
   4.26 Webservice und Client verwenden unterschiedliche Laufzeiten
   4.27 Im Assistenten 'Webservice-Client' auf 'Fertig stellen' klicken
   4.28 Spickzettel für Webservices

1.0 Einführung

Mit der Funktion der Webservice-Tools können Sie Java-Bean-, Enterprise-Bean- und URL-Webservices aufspüren, erstellen und publizieren. Diese Readme-Datei beschreibt die bekannten Probleme, Einschränkungen und Umgehungen, die mit den folgenden Funktionen der Webservice-Tools zusammenhängen:

2.0 Unterstützte Software und Spezifikationen

Der Webservices-Explorer unterstützt die folgenden Webbrowser:

Dieses Release der Webservice-Tools generiert Code, der den folgenden Spezifikationen entspricht:

Dieses Release der Webservice-Tools unterstützt:

Wenn Sie die WORF-Testumgebung außerhalb der Workbench mit Mozilla starten, sollte hierzu mindestens die Mozilla-Version 1.3.1 verwendet werden. Die Ausgabe vom Aufruf des Webservices sowie die Beschreibungsdateien werden in älteren Versionen des Mozilla-Browsers möglicherweise nicht korrekt angezeigt.

Die DADX-Laufzeit erfordert den DB2 7.2-Fixpack oder später oder aber DB2 8.1 oder später.

3.0 Änderungen seit dem letzten Release

Folgende Funktionen sind neu in den Webservice-Tools in Version 5.1:

4.0 Bekannte Probleme

4.1 Webservice-Explorer

4.2 Private UDDI-Registrierung

4.3 Interoperabilität mit IBM SOAP-Laufzeit

4.4 Ein WSDL-Dokument aus einer DADX-Datei generieren

4.5 Webtools - JSP-Generator

Wird der Universelle Testclient aus dem Webservice-Assistenten gestartet, ist die JNDI-Provider-URL auf den standardmäßigen WebSphere V5-Port 2809 gesetzt. Wenn Sie einen WebSphere V4-Server verwenden oder die Portnummer geändert haben, können Sie das JNDI-Verzeichnis nicht durchsuchen. Versuchen Sie, auf das JNDI-Verzeichnis zuzugreifen, erhalten Sie folgende Fehlermeldung:

IWAD0403E JNDI-Baumstruktur konnte nicht erstellt werden: CORBA.COMM_FAILURE beim Auflösen des Anfangsverweises=WsnNameService (IWAD0403E Could not construct the JNDI tree: Caught CORBA.COMM_FAILURE when resolving initial reference=WsnNameService)

Sie können das Problem wie folgt umgehen:

  1. Doppelklicken Sie auf den Server, den Sie gegenwärtig verwenden. Dadurch werden die Servereigenschaften angezeigt.
  2. Klicken Sie auf die Registerkarte für Anschlüsse.
  3. Kopieren Sie den Orb-Bootstrap-Port.
  4. Öffnen Sie im Universellen Testclient das JNDI-Eigenschaftenfenster.
  5. Fügen Sie den Bootstrap-Port in das Texteingabefeld der Provider-URL.

4.7 Mehrfachausgabe ist bei DADX-Webservice in bestimmten Fällen erlaubt

Normalerweise werden mehrfache Ausgaben in einem Webservice von unseren Tools nicht unterstützt. Bei DADX-Webservices sind mehrfache Ausgaben jedoch erlaubt, wenn die Option Gruppeneigenschaft 'Dokumentstil verwenden' auf wahr gesetzt ist. Wenn Dokumentstil auf wahr gesetzt ist, werden mehrfache Ausgaben zu einem einzigen XML-Dokument kombiniert.

4.8 Vorgabe für JDBC-Treiber gilt nur für Verwendung unter Linux

Zu den Webservice-Benutzervorgaben (Fenster > Benutzervorgaben > Webservices) wurde eine neue Kategorie namens JDBC-Treiber hinzugefügt. Obwohl diese Benutzervorgabe für alle Plattformen bereitgestellt wird, ist ihre Verwendung nur für Linux bestimmt. Unter Linux kann es schwierig sein, die Adresse der JAR-Datei mit den JDBC-Treibern zu ermitteln. Deshalb wurde diese Benutzervorgabenseite hinzugefügt, sodass angegeben werden kann, welche JAR-Datei verwendet werden soll. Aktuell verwendet nur der DADX-Gültigkeitscode diese JAR-Dateiinformationen.

4.9 DAD-Beispieldateien müssen aktualisiert werden, wenn XML-Extender nicht im Standardverzeichnis installiert ist

Die DAD-Dateien im Verzeichnis WS_installationsverzeichnis\wstools\eclipse\plugins\com.ibm.etools.webservice_<version>\samples\DADX_examples müssen geändert werden, um Ihre Systemkonfiguration zu reflektieren.

Im oberen Bereich der Datei befindet sich eine Zeile ähnlich der folgenden:

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

Wurde der XML-Extender in eine andere Speicherposition geladen als c:\dxx, muss diese Zeichenfolge aktualisiert werden, damit die aktuelle Speicherposition reflektiert wird. Dies gilt auch für Linux-Maschinen, bei denen die Speicherposition üblicherweise /usr/IBMdb2xml lautet.

4.10 Probleme bei DADX-Webservices

4.11 Unterstützung für die DADX-Generierung

Im Assistent für die DADX-Generierung sind zwar benutzerdefinierte Funktionen aufgelistet, jedoch besteht zum gegenwärtigen Zeitpunkt keine Unterstützung für die Generierung von DADX auf der Grundlage benutzerdefinierter Funktionen. Unterstützung ist nur für die DADX-Generierung von DAD-Dateien, gespeicherten Prozeduren und SQL-Anweisungen verfügbar. Bei Auswahl einer UDF wird eine einfache DADX-Entwurfsdatei (Skeletondatei) generiert.

4.12 WSDL-Fehler nach dem Importieren einer Webservice-Datei aus 4.0.x

Nachdem Sie eine Webservice-Datei aus 4.0.x importiert haben, werden möglicherweise die folgenden Fehlernachrichten angezeigt:

Fehler Im Teil 'result' ist ein ungültiger Wert 'anyElement' für den Typ definiert. Typendeklarationen müssen sich auf gültige Werte in einem Schema beziehen.

Fehler Im Teil 'return' ist ein ungültiger Wert 'findPatientResult' für das Element definiert. Elementdeklarationen müssen sich auf gültige Werte in einem Schema beziehen.

Fehler Im Teil 'response' ist ein ungültiger Wert 'findPatientResponse' für das Element definiert. Elementdeklarationen müssen sich auf gültige Werte in einem Schema beziehen.

Sie können das Problem wie folgt umgehen:

  1. Löschen Sie die WSDL-Dateien.
  2. Generieren Sie die Webservice neu, indem Sie den Assistenten 'Webservices' erneut ausführen.

4.13 Probleme bei der Verwendung der Befehlszeile der Webservices

4.14 Erstellung von Webservices ohne vorhandenen Server

4.15 Beispielanwendung für Webservices generieren

4.16 WSDL-Dateien mit HTTP-Basisauthentifizierung importieren

Wenn Skeletons oder Clients aus einer WSDL-Datei generiert werden, über relative Importe verfügt und durch HTTP-Basisauthentifizierung geschützt ist, wird eine Fehlernachricht angezeigt, deren Inhalt besagt, dass die WSDL-Datei nicht aufgelöst werden kann, selbst wenn die korrekte Benutzer-ID und das entsprechende Kennwort eingegeben werden. Das Problem besteht darin, dass Benutzer-ID und Kennwort nur zum Abrufen der WSDL-Originaldatei verwendet werden, nicht aber der Dateien, die diese Datei importiert.

Dieses Problem kann umgangen werden, indem zuerst die WSDL-Datei sowie alle Dateien, die von der WSDL-Datei importiert werden, in die Workbench heruntergeladen werden, und erst anschließend ein Skeleton oder ein Client aus der heruntergeladenen WSDL-Datei generiert wird.

4.17 Probleme mit der Verwendung der WebSphere v5.0.2-Laufzeit

4.18 Eine DADX-Gruppe mit Datenquelleninformationen einrichten

Wenn WebSphere Application Server V5.0 als Host für einen DADX-Webservice verwendet wird, sollte die Datei 'group.properties' für die DADX-Gruppe die folgende Eigenschaft für 'initialContextFactory' aufweisen:

initialContextFactory=com.ibm.websphere.naming.WsnInitialContextFactory

Darüber hinaus muss zu der Datei 'web.xml' für das Projekt, in dem sich die DADX-Gruppe befindet, Folgendes hinzugefügt werden. (Hierbei wird vorausgesetzt, dass der JNDI-Datenquellenname 'jdbc/hospital' ist.)

       <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.19 Client-Locator mit dem Universellen Testclient laden

Wenn der Universelle Testclient nicht in der Lage ist, die von der WebSphere v5.0.2- o der Axis-Laufzeit generierte Client-Locator-Klasse voher zu laden, liegt dies darin begründet, dass der Name der JavaBean-Klasse im Service-Webprojekt identisch mit dem Namen der SEI-Klasse im Client-Webprojekt ist. Führen Sie die folgenden Schritte aus, um dieses Problem zu umgehen:

  1. Löschen Sie das Client-Webprojekt aus dem Arbeitsbereich.
  2. Erstellen Sie das Client-Webprojekt unter einer anderen EAR, wobei der EAR-Projektname in alphabetischer Sortierung vor dem Namen des Service-EAR-Projekts stehen muss. Wenn der Name des Service-EAR-Projekts 'DefaultEAR' lautet, erstellen Sie das neue EAR-Projekt mit dem Namen 'ClientEAR'.
  3. Führen Sie den Assistenten für Webservices erneut aus.

 

4.20 Benutzervorgaben für Ressourcen werden nicht berücksichtigt

Die Vorgaben zum Überschreiben von Dateien, zur Erstellung von Dateien und zum automatischen Check-out von Dateien werden nicht berücksichtigt, wenn die Webservices unter Verwendung der WebSphere v5.0.2- und der Axis-Laufzeit erstellt werden. Die Erstellung von Ordnern ist zu jedem Zeitpunkt zulässig und der automatische Check-out von Dateien ist nie aktiviert.

Wenn Sie die WebSphere v5.0.2-Laufzeit verwenden, werden die WSDL-Datei, die SEI- und Implementierungsartefakte (Parallel-Seriell-Umsetzer und Seriell-Parallel-Umsetzer) immer überschrieben. Die Entwicklungsartefakte (Service-Bean, Beans komplexen Typs sowie Holder- und Unterstützungsklassen) werden nie überschrieben. Es wird jedoch trotzdem eine Warnung mit dem Inhalt angezeigt, dass die Implementierungsdekriptoren überschrieben werden, sofern sie vorhanden sind. In diesem Fall kann die Meldung mit 'OK' bestätigt werden, sodass die Implementierungsdeskriptoren überschrieben werden, und anschließend kann mit dem Szenario fortgefahren werden. Soll vermieden werden, dass die Deskriptoren überschrieben werden, muss 'Abbrechen' gewählt werden.

Wenn die Apache Axis 1.0-Laufzeit verwendet wird, generieren die Axis-Emitter jedes Mal alle Server-/Client-Java-Dateien ('deploy.wsdd' und 'undeploy.wsdd'). WSDL2Java für das Szenario für die Servicegenerierung generiert nur die Skeleton-Implementierungsdatei, sofern diese nicht schon vorhanden ist. Ist diese Implementierung bereits vorhanden, wird sie nicht überschrieben.

4.21 Probleme bei der Verwendung der Apache Axis 1.0-Laufzeit

4.22 Kompilieren des Webservicebeispiels für JSP schlägt fehl

Beim Generieren von Webserviceentwürfen oder Proxys aus WSDL, die denselben Namen für eines ihrer <service>- und <port>-Elemente verwendet, sollten sie keine Beispiel-JSPs als Testclient verwenden. Die generierte Beispiel-JSP enthält Fehler und lässt keine Kompilierung zu. Jeder Versuch, die Beispiel-JSPs auf dem Server auszuführen, werden den FEHLER 500 im Browser zur Folge haben, der darauf hinweist, dass die Beispiel-JSPs nicht geladen werden können. Außerdem werden Ausnahmebedingungen in der Serverkonsole ausgelöst, die angeben, dass der Servlet-Container die Beispiel-JSPs nicht kompilieren konnte.

4.23 Problem mit der Webservices-Befehlszeile für Deutsch

Wenn das Befehlszeilentool unter Windows in deutscher Sprache ausgeführt wird, werden bestimmte Zeichen in der Ausgabe als '?' angezeigt. Dieses Zeichen stellt vermutlich einen deutschen Umlaut dar.

4.24 Fehler bei nicht definiertem lokalen Host (localhost)

Der Assistent für die Erstellung von Webservices kann bei der WSDL-Generierung fehlgeschlagen, wenn der Hostname 'localhost' nicht auf dem Computer definiert ist. Möglicherweise kann auch UTC nicht erfolgreich gestartet werden, wenn 'localhost' nicht definiert ist.

Unter Windows muss der folgende Eintrag in der Datei [INSTALLATIIONSLAUFWERK]\WINNT\system32\drivers\etc\hosts vorhanden sein:

127.0.0.1 localhost

Unter Linux muss der folgende Eintrag in der Datei /etc/hosts vorhanden sein:

127.0.0.1 localhost

4.25 Dauerhafte Einschränkungen bei der Verwendung der IBM SOAP-Laufzeit

Die IBM SOAP-Laufzeit sollte vorwiegend aus Gründen der Abwärtskompatibilität verwendet werden. Es wird stark angeraten, dass Sie für alle Produktionsziele und -zwecke den Webservice-Assistenten mit der IBM WebSphere 5.0.2-Laufzeit verwenden. Bei Verwendung des Webservice-Assistenten mit der IBM SOAP-Laufzeit können Sie auf folgende dauerhafte Einschränkungen treffen:

4.26 Webservice und Client verwenden unterschiedliche Laufzeiten

Wenn Sie einen Webservice aus einer JavaBean oder EJB erstellen und dabei IBM SOAP als Laufzeit für den Service und Apache Axis 1.0 als Laufzeit für den Client angeben, wird möglicherweise der folgende Fehler angezeigt:
WSDL Not found (WSDL nicht gefunden)

Das Problem kann vermieden werden, wenn Sie zuerst den Webservice generieren, ohne dafür die Generierung eines Proxys auszuwählen. Erstellen Sie anschließend einen Webservice-Client von der generierten WSDL-Datei.

4.27 Im Assistenten 'Webservice-Client' auf 'Fertig stellen' klicken

Wenn Sie im Assistenten 'Webservice-Client' arbeiten und auf der Seite 'Konfiguration der Clientumgebung' auf 'Fertig stellen' klicken, wird folgender Fehler angezeigt:

'null' kann nicht aufgelöst werden

Dieses Problem kann umgangen werden, indem Sie auf dieser und der nachfolgenden Seite auf 'Weiter' klicken und erst dann auf 'Fertig stellen'.

4.28 Spickzettel für Webservices

In den Spickzetteln 'Einen WS-I-kompatiblen Webservice erstellen, testen und auswerten' und 'Erstellen eines Webservices aus einer WSDL-Datei' sollten Sie, falls Sie die Datei 'HelloService.wsdl' aus dem Verzeichnis wsad_install/wstools/eclipse/plugins/com.ibm.etools.cs.wsdl.content_5.1/examples verwenden, die Position des Service-Ports in Übereinstimmung mit den folgenden Angaben für die verschiedenen Laufzeiten ändern:

IBM Soap:

Position = 'http://localhost:9080/HelloWorldSample/servlet/rpcrouter'

Apache Axis- oder WebSphere 5.0.2-Laufzeit

Position = 'http://localhost:9080/HelloWorldSample/services/Hello_Port'

Wenn Sie eine eigene WSDL-Datei importieren, stellen Sie bitte sicher, dass die Position für die ausgewählte entsprechend der obigen Angaben korrekt angegeben ist.

Zurück zur Readme-Hauptdatei