Mit den WebSphere-Laufzeitumgebungen erstellte Web-Services unterstützen zusätzlich zum vorhandenen HTTP-Transport eine JMS-Transportschicht. Diese JMS-Transportschicht ermöglicht es Web-Service-Clients und -Servern, über JMS-Warteschlangen und -Topics anstelle von HTTP-Verbindungen miteinander zu kommunizieren. Es werden sowohl unidirektionale als auch synchrone bidirektionale Anforderungen unterstützt.
Im Folgenden sind verschiedene Vorteile der Verwendung von JMS als Alternative zu HTTP aufgelistet:
Wenn ein Web-Service über den JMS-Transport zugänglich sein soll, muss das entsprechende WSDL-Dokument eine JMS-Bindung und eine SOAP-Adresse enthalten, die die URL eines JMS-Endpunkts angibt. Eine JMS-Bindung ist ein wsdl:binding-Element, das ein wsdlsoap:binding-Element enthält, dessen Attribut transport mit soap/jms und nicht mit dem in der Regel verwendeten Wert soap/http endet. Zusätzlich zur JMS-Bindung sollte ein wsdl:port-Element, das auf die JMS-Bindung verweist, in das Element wsdl:service im WSDL-Dokument eingeschlossen werden. Dieses Element wsdl:port muss ein wsdlsoap:address-Element enthalten, dessen Attribut location die URL eines JMS-Endpunkts angibt.
Sie müssen außerdem eine Festlegung bezüglich der Namen und Typen von JMS-Objekten treffen, die von Ihrer Anwendung verwendet werden. Sie müssen beispielsweise festlegen, ob Ihr Web-Service seine Anforderungen von einer Warteschlange oder von einem Topic empfängt, ob ein sicheres Ziel (Warteschlange oder Topic) verwendet werden soll und welche Namen für das Ziel, die Verbindungsfactory und den Listener-Port verwendet werden sollen. Die folgende Liste enthält ein Beispiel für die Namen, die für den Beispiel-Web-Service StockQuote verwendet werden könnten:
Nachdem Sie Ihren Web-Service erstellt haben, können Sie den Assistenten "Routermodule erstellen" ausführen, um einen JMS-Endpunkt (Routermodul) für die in der EAR-Datei enthaltene JAR-Datei jeder Web-Service-fähigen EJB hinzuzufügen. Wenn Sie den Web-Service mit dem Web-Service-Assistenten erstellen, wird dieser Schritt automatisch ausgeführt.