Diese Datei enthält eine umfassende Liste mit permanenten und temporären Beschränkungen, die sich auf Web-Services auswirken.
Die Beschränkungen, mit denen Sie es bei der Arbeit mit Web-Services zu tun bekommen,
sind in folgende Abschnitte gegliedert:
Probleme bei Verwendung eines geschützten
WebSphere Application
Server
Die folgende Fehlernachricht kann angezeigt werden:
SSLSocketFactory
error message: java.net.SocketException: java.lang.ClassNotFoundException:
Cannot find the specified class com.ibm.websphere.ssl.protocol.SSLSocketFactory
Bevor Sie den
Web Services Explorer verwenden, Beispiel-JSPs generieren, einen Web-Service oder -Client aus einer
HTTPS-WSDL-Datei erstellen oder einen Axis-Web-Service implementieren, müssen Sie die
Workbench für die SSL-Kommunikation (Secure Sockets Layer) mit einem Server konfigurieren. Informationen zu dieser Aufgabe finden Sie
im Artikel Probleme
beim Arbeiten mit einem geschützten Server über SSL-Verbindungen.
Die folgende Fehlernachricht könnte angezeigt werden: Error
opening socket: javax.net.ssl.SSLHandshakeException: unknown certifcate
Wenn Sie den Web-Service-Assistenten für den Empfang von
HTTPS-WSDL oder den
Web Services Explorer für einen geschützten WebSphere Application Server verwenden möchten, führen Sie die
Schritte aus, die im Artikel IBM® JRE für
die Kommunikation mit einem geschützten WebSphere Application Server konfigurieren beschrieben sind.
Probleme bei Verwendung des Web-Service-Assistenten
- Wenn Sie mitten in der Ausführung eines der Web-Service-Assistenten auf Abbrechen klicken, sind möglicherweise
Web-Service-Einträge in den Implementierungsdeskriptoren und generierte Dateien in Ihrem Arbeitsbereich enthalten.
Löschen Sie diese Dateien manuell, nachdem Sie den Assistenten geschlossen haben.
- Publizieren von EAR-Dateien mit den Web-Service-Assistenten schlägt fehl
Problem: Wenn ein ferner Server von der Stub-Laufzeit
erstellt wird, wird die EAR-Datei nicht publiziert.
Ursache: Der Web-Service-Assistent kann nicht herausfinden, ob ein Server gestartet werden kann oder nicht.
Lösung: Klicken Sie in einer Perspektive, in der die Ansicht "Server" verfügbar ist, mit der rechten Maustaste
auf den fernen Server und wählen Sie
Projekte hinzufügen
und entfernen aus. Wählen Sie das Projekt aus und fügen Sie es zum Server hinzu.
- Konsumieren des ausgewählten Projekttyps durch Web-Service-Assistenten nicht möglich
Problem:
Wenn Sie versuchen, die Web-Service-Assistenten für eine EAR-Datei auszuführen, die ein
Java-EE-Anwendungsclientprojekt mit ausgewählter Option Web-Service auf
Server installieren enthält oder ein EJB-Projekt, das keine EJB enthält, können Sie die Assistenten nicht zum Generieren des Web-Service
verwenden.
Ursache: Die Web-Service-Assistenten überprüfen, ob sie den auf Seite drei ausgewählten Projekttyp konsumieren können. Ist dies nicht möglich, können Sie die Arbeit mit dem
Assistenten nicht fortsetzen.
Lösung: Wenn Sie den Assistenten abbrechen und dann ohne Auswahl von
Web-Service auf Server
installieren oder nach Hinzufügen einer EJB zum EJB-Projekt erneut ausführen,
können Sie weitere Assistentenschritte ausführen.
- Wenn beim Start des Web-Service-Assistenten im Arbeitsbereich eine WSIL-Datei ausgewählt ist, gibt der Assistent an, dass die Auswahl ungültig ist, denn
Sie müssen eine WSDL-Datei in der WSIL-Datei auswählen.
Lösen Sie dieses Problem, indem Sie im Web-Service-Assistenten auf Durchsuchen klicken, um eine bestimmte WSDL-Datei
auszuwählen.
- Wenn der Name des Zielwebprojekts Zeichen enthält, die nicht zu einem Latin-1-Zeichensatz gehören, kann der
Web-Service-Assistent während der Erstellung eines Web-Service einen Fehler generieren. Das Problem tritt auf,
weil die Web-Service-Codegeneratoren HTTP-URLs ausgehend vom Projektnamen berechnen und nicht zu einem Latin-1-Zeichensatz gehörende
Zeichen in HTTP-URLs nicht zulässig sind. Lösen Sie dieses Problem, indem Sie für Projektnamen nur Latin-1-Zeichen verwenden.
- Wenn Ihr Arbeitsbereich mehr als ein EAR-Projekt enthält, Sie
Enterprise JavaBeans in einem EJB-Projekt auswählen und dann den Web-Service-Assistenten starten, ist die ausgewählte Enterprise-Bean
nach dem Start des Assistenten möglicherweise nicht mehr ausgewählt. Im Dialogfenster "Serviceimplementierung auswählen" wird die nach alphabetischer Sortierung erste
EAR-Datei im Arbeitsbereich als EJB-Projekt ausgewählt und nicht die EAR-Datei, die dem EJB-Projekt mit der Bean zugeordnet ist. Lösen Sie dieses Problem, indem Sie
im Dialogfenster "Serviceimplementierung" manuell das gewünschte EAR-Projekt auswählen.
- Wenn Sie auf der ersten Seite des Web-Service-Assistenten auswählen, dass der Web-Service-Datenverkehr überwacht werden soll,
wird gelegentlich die Ansicht "TCP/IP-Überwachungsprogramm" nicht automatisch angezeigt. Sie können die Ansicht manuell öffnen. Wählen Sie dazu
aus. In dieser Ansicht werden Anfrage und Antwort für den Web-Service
angezeigt.
Probleme bei Verwendung von
WebSphere-JAX-WS-Laufzeitumgebung und
JAXB
Beschränkungen bei der Erstellung eines Web-Service-Clients
Wenn Sie einen Web-Service-Client in einem EJB-Projekt implementieren, müssen Sie auf der Proxy-Konfigurationsseite die EJB auswählen,
die den Bereich für den Web-Service definiert. Diese Auswahl ist eine in
JSR 109 definierte Anforderung, nach der der Komponentenname eines Elements component-scoped-refs mit dem
ejb-name einer EJB im Modul übereinstimmen muss.
Wenn es im Projekt mindestens eine EJB gibt, treten keine Fehler auf. Enthält das Projekt jedoch keine
EJBs, können die Optionen auf der Proxy-Konfigurationsseite bearbeitet werden. Der Standardwert dieser Optionen ist dann der
mit dem Suffix
"EJB" versehene Servicename aus der WSDL. Überdies zeigt der Clientassistent eine Warnung an,
dass die Implementierung unvollständig ist, weil es keine EJB gibt, die den Bereich für den Web-Service-Client definiert. Sie können diesen Fehler beseitigen,
indem Sie eine EJB mit dem in webservicesclient.xml verwendeten component-name erstellen.
Wenn Sie die Clienterstellung jedoch durch
Abbrechen des Assistenten beenden, entfernt der Assistent nicht die unvollständigen
component-scoped-refs aus der Datei webservicesclient.xml.
Entfernen Sie die unvollständigen component-scoped-refs manuell vor der erneuten Implementierung.
Beschränkungen für die Web-Service-Beispiel-JSPs
- Web-Service-Beispiel-JSPs unterstützen keine Methoden, die Arrays oder Sammlungen als Parameter verwenden. Solche Methoden sind im Fensterbereich "Methoden" der Beispiel-JSPs nicht
angegeben.
Probleme mit dem Web Services Explorer
- Wenn der Web Services Explorer WSDL-Dateien lädt, die mehrere integrierte Schemata verwenden, werden für Typen, die in diesen Schemata referenziert
werden, Warnungen generiert. Eine solche Warnung lautet etwa wie folgt: Reference
of type <qualifizierter_Name_des_Typs> isn't resolved. Diese Warnungen sind keine Fehler und beeinträchtigen nicht die Fähigkeit des Web Services Explorer, Operationen zu starten.
Sie können diese Warnungen daher ignorieren.
- Der Web Services Explorer unterstützt nicht den Aufruf von Web-Services durch Authentifizierungs-Proxy-Server, die ein anderes Protokoll als die
HTTP-Basisauthentifizierung verwenden, z. B. NTLM. Wenn der Web Services Explorer aus diesem oder einem anderen Grund keine Verbindung zum gewählten Web-Service
herstellen kann, zeigt er in seinem Ergebnisfenster den Fehler
IWAB0135E
Ein unerwarteter Fehler ist aufgetreten, gefolgt von Informationen zum Fehler aus der HTTP-Antwort, an. Wechseln Sie zu einem Proxy-Server mit
HTTP-Basisauthentifizierung, um dieses Problem zu lösen.
- Der Web Services Explorer hat Probleme, wenn Sie von der Quellenansicht zur Formularansicht wechseln,
sofern das Schema Optionen mit Folgen enthält.
Wenn Sie ein Auswahlelement in einem complexType verwenden, enthält dieses zwei oder mehr Elemente, zu denen auch eine Folge gehört.
Wechseln Sie nun von der Formularansicht zur Quellenansicht, ist der Web Services Explorer möglicherweise nicht in der Lage, das entsprechende
XML-Fragment der Quellenansicht richtig für die Formularansicht zu konvertieren, ohne dass Daten verlorengehen. Lösen Sie dieses Problem, indem Sie
die Folge in der Formularansicht beginnen, wenn Sie mit der Dateneingabe anfangen. Bei dieser Konfiguration wird die Verwendung der Quellenansicht
nicht empfohlen. Sollten Sie die Quellenansicht verwenden, schalten Sie nicht wieder auf die Formularansicht um.
- Der Web Services Explorer importiert WSDL, ohne relative Import-URLs aufzulösen. Bei Verwendung des Web Services Explorer gibt es ein Problem,
wenn Sie WSDL von der WSDL-Seite in den Arbeitsbereich importieren. Ist die Option
Als Serviceverweis auf ein WSIL-Dokument importieren ausgewählt, bezieht sie sich auf die ursprüngliche URL der WSDL, über die alle relativen Importe
erreichbar sind. Wenn WSDL-Dokument importieren ausgewählt ist, enthält die
WSDL-Datei relative Importe, die nicht mehr erreichbar sind, sodass es schwierig oder unmöglich ist, die Kopie der WSDL an anderer Stelle mit den Tools zu bearbeiten. Falls es bei der von Ihnen importierten WSDL relative Importe
gibt, verwenden Sie die WSIL-Methode. Wenn eine Kopie der WSDL benötigt wird, überprüfen Sie nach dem Import manuell, ob relative Importe vorhanden sind, und korrigieren Sie
ggf. defekte Links.
Probleme bei Verwendung des Web-Service-Befehlszeilentools
- Wenn Sie in den Arbeitsbereich eine EAR-Datei importieren, die einen mit den Befehlszeilentools unter Verwendung von
Java EE 1.4 generierten EJB-Client enthält, treten Kompilierungsfehler auf. Korrigieren Sie die Fehler, indem Sie mit der
rechten Maustaste auf das EJB-Projekt klicken und Eigenschaften auswählen.
Navigieren Sie zum Java-Buildpfad und wählen Sie die Registerkarte Bibliotheken aus.
Entfernen Sie den Eintrag EJBClientProject/imported_classes(class folder).
Fügen Sie den Klassenordner EJBServiceClient/imported_classes/Meta-inf/classess hinzu.
Klicken Sie auf OK.
- Wenn Sie in den Arbeitsbereich eine EAR-Datei importiert haben, die einen mit den Befehlszeilentools unter Verwendung von
Java EE 1.4 generierten Anwendungsclient enthält, empfangen Sie bei Ausführung des Clients einen Fehler ClassNotFoundException. Wenn Sie die Fehler beheben möchten, klicken Sie mit der rechten Maustaste auf das Anwendungsclientprojekt und wählen Sie
Eigenschaften aus. Navigieren Sie zum Java-Buildpfad und wählen Sie die Registerkarte Bibliotheken aus.
Entfernen Sie den Eintrag ApplicationClientProject/imported_classes(class folder).
Fügen Sie den Klassenordner ApplicationClientProject/imported_classes/Meta-Inf/classess hinzu.
Klicken Sie auf OK.
- Die auf die Axis-Laufzeit abzielenden Web-Service-Ant-Tasks generieren Web-Services, implementieren diese jedoch nicht. Aus diesem Grund
sind Axis-Web-Services, die mit den Ant-Tasks erstellt wurden, erst auf dem aktiven Server
erreichbar, wenn Sie Ihre Services manuell mit dem
nativen Dienstprogramm AdminClient von Apache Axis implementieren. Implementieren Sie die generierte
Datei deploy.wsdd (die sich in Unterverzeichnissen des Verzeichnisses WebContent/WEB-INF
des Webprojekts befindet) manuell mit dem Axis-Tool AdminClient in Axis. Weitere Details hierzu finden Sie im Abschnitt Using the AdminClient der Veröffentlichung
"Axis 1.4 User's Guide".