JAX-WS-Anwendungspaket

Sie können eine JAX-WS-Anwendung (Java™ Application Programming Interface (API) for XML Web Services) als Web-Service packen. Ein JAX-WS-Web-Service ist in einer WAR-Datei (Web Archive) oder einem WAR-Modul in einer EAR-Datei (Enterprise Archive) enthalten.

Die WAR-Datei mit JAX-WS-Unterstützung enthält Folgendes:
  • eine Datei WEB-INF/web.xml,
  • annotierte Klassen, die die im Anwendungsmodul enthaltenen Web-Services implementieren,
  • [optional] WSDL-Dokumente (Web Services Description Language), die die im Anwendungsmodul enthaltenen Web-Services beschreiben.
Im Folgenden sehen Sie ein Beispiel für ein Datei "WEB-INF/web.xml":
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" xmlns=”http://java.sun.com/xml/ns/j2ee”
         	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
         http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
         version="2.4">
</web-app>

Die Datei web.xml kann "servlet"- oder "servlet-mapping"-Elemente enthalten. Wenn Sie keine Anpassungen an der Datei web.xml vornehmen müssen, definiert die Laufzeitumgebung von WebSphere Application Server sie dynamisch, wenn das Modul geladen wird. Weitere Informationen zum Konfigurieren der Datei web.xml finden Sie in der Dokumentation zum Anpassen der Web-URL-Muster in der Datei web.xml für JAX-WS-Anwendungen.

Annotierte Klassen müssen mindestens eine Web-Service-Implementierungsklasse enthalten, die die Annotation @WebService enthält. Die Definition und Angabe der Anmerkungen zu Web-Services erfolgt durch die Spezifikationen JAX-WS und JSR-181. Die Web-Service-Implementierungsklassen können im Verzeichnis WEB-INF/classes oder in einem Verzeichnis in einer JAR-Datei im Verzeichnis WEB-INF/lib der WAR-Datei enthalten sein.

Optional können Sie WSDL-Dokumente in das JAX-WS-Anwendungspaket aufnehmen. Wenn das WSDL-Dokument für einen bestimmten Web-Service weggelassen wird, erstellt die Laufzeitumgebung von WebSphere Application Server die WSDL-Definition dynamisch aus den Annotationen, die in den Web-Service-Implementierungsklassen enthalten sind.

Ab WebSphere Application Server Version 7.0 werden Java EE 5-Anwendungsmodule (Webanwendungsmodule der Version 2.5 oder höher oder EJB-Module der Version 3.0 oder höher) nach Annotationen durchsucht, um JAX-WS-Services und -Clients zu identifizieren. Anwendungsmodule vor Java EE 5 (Webanwendungsmodule der Version 2.4 oder früher oder EJB-Module der Version 2.1 oder früher) werden aus Leistungsgründen standardmäßig nicht nach JAX-WS-Annotationen durchsucht. In Feature Pack for Web Services Version 6.1 werden die Webanwendungsmodule einer Version vor Java EE 5 standardmäßig gescannt, um die JAX-WS-Services zu identifizieren und die Webanwendungsmodule und EJB-Module einer Version vor Java EE 5 während der Anwendungsinstallation nach Service-Clients zu scannen. Da Module vor Java EE 5 ab WebSphere Application Server Version 7.0 während der Anwendungsinstallation bzw. des Serverstarts standardmäßig nicht nach Annotationen durchsucht werden, müssen Sie zur Gewährleistung der Abwärtskompatibilität mit dem Feature-Pack früherer Releases entweder die Eigenschaft "UseWSFEP61ScanPolicy" in der Manifest-Datei "META-INF/MANIFEST.MF" einer WAR-Datei (Webarchiv) oder eines EJB-Moduls konfigurieren oder die angepasste JVM-Eigenschaft (Java Virtual Machine) "com.ibm.websphere.webservices.UseWSFEP61ScanPolicy" auf den Servern definieren, damit die Module während der Anwendungsinstallation bzw. des Serverstarts durchsucht werden. Wenn Sie mehr über das Durchsuchen von Modulen nach Annotationen erfahren möchten, lesen Sie die Informationen zu JAX-WS-Annotationen.

Fehler vermeiden Fehler vermeiden: Während der Web-Service-Anwendungsimplementierung werden die Dienstprogramm-JAR-Dateien auf Annotationen hin überprüft. Wenn Web-Services in Dienstprogramm-JAR-Dateien gepackt sind, können von der Web-Service-Engine nicht erkannt werden. Wenn die Option Komponenten nach Bedarf starten in den Konfigurationseinstellungen ausgewählt ist, kann die Web-Service-Komponente in einem solchen Fall nach dem Start des Anwendungsservers nicht gestartet werden, weil kein Web-Service erkannt wird. Verwenden Sie die angepasste Eigenschaft com.ibm.websphere.webservices.StartWebServicesComponent um diese Problematik zu vermeiden.gotcha
Fehler vermeiden Fehler vermeiden: Es wird dringend empfohlen, die Serviceendpunktschnittstelle und die Implementierungsklassen von Web-Services anderer Anbieter mit der Anwendung/dem Modul zu packen. Dadurch wird sichergestellt, dass die Serviceendpunktschnittstelle und die Implementierungsklassen für das Klassenladeprogramm der Anwendung sichtbar sind, und das Eintreten einer Ausnahme wie EndpointInterfaceDescriptionImpl: Die für diese Klasse angegebene Superklasse wurde nicht gefunden wird verhindert.

Wenn die Serviceendpunktschnittstelle und die Implementierungsklassen nicht mit der Anwendung/dem Modul gepackt werden können, wird empfohlen, die JAR-Dateien, die diese Klassen enthalten, in einer isolierten freigegebenen Bibliothek zu packen und diese freigegebene Bibliothek der Anwendung/dem Modul zuzuordnen.

gotcha

Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



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