HTTP-Sitzungsverwaltung für JAX-WS-Anwendungen verwenden

Die HTTP-Sitzungsverwaltung wird über Cookies oder URL-Umschreibung auf HTTP-Transportschicht durchgeführt. Mit der Bereitstellung mehrerer Optionen für die Überwachung einer Reihe von Anforderungen ermöglicht die HTTP-Sitzungsverwaltung einer JAX-WS-Anwendung (Java™ API for XML-Based Web Services), für den Anwendungsbenutzer als dynamische Anwendung aufzutreten.

Vorbereitende Schritte

Entwickeln Sie einen dynamischen JAX-WS-Proxy oder einen Dispatch-Client. Wenn Sie mehr über die Entwicklung von JAX-WS-Clients erfahren möchten, lesen Sie die Informationen zum Entwickeln eines JAX-WS-Clients aus einer WSDL-Datei (Web Services Description Language) oder zum Entwickeln eines dynamische Clients mit den JAX-WS-APIs.

Informationen zu diesem Vorgang

Sie können die HTTP-Sitzungsverwaltung verwenden, um Benutzerstatusinformationen auf dem Server zu verwalten und gleichzeitig minimale Informationen für die Überwachung der Sitzung an den Benutzer zurückzugeben. Sie können die HTTP-Sitzungsverwaltung im Anwendungsserver über Sitzungscookies oder URL-Umschreibung implementieren.

Die Interaktion zwischen dem Browser, dem Anwendungsserver und der Anwendung ist für den Benutzer und das Anwendungsprogramm transparent. Die Anwendung und der Benutzer kennen die vom Server bereitgestellte Sitzungs-ID nicht.

Sitzungscookies

Das HTTP-Feature für die Verwaltung von Sitzungen verwendet ein einziges Cookie, JSESSIONID, und dieses Cookie enthält die Sitzungs-ID. Dieses Cookie wird verwendet, um die Anforderung Informationen zuzuordnen, die für diese Sitzung auf dem Server gespeichert sind. Bei nachfolgenden Anforderungen von der JAX-WS-Anwendung wird die Sitzungs-ID im Rahmen des Anforderungsheaders übergeben. Dies ermöglicht der Anwendung, jede Anforderung für eine bestimmte Sitzungs-ID früheren Anforderungen dieses Benutzers zuzuordnen. Die JAX-WS-Clientanwendungen rufen die Sitzungs-ID aus den HTTP-Antwortheadern ab und verwenden diese IDs anschließend in nachfolgenden Anforderungen, indem sie die Sitzungs-ID in den HTTP-Anforderungsheadern setzen.

URL-Umschreibung

Die URL-Umschreibung funktioniert wie ein umgeleiteter URL, weil die Sitzungs-ID im URL gespeichert wird. Die Sitzungs-ID wird als Parameter in jedem Link und jedem Formular codiert, die von einer Webseite übertragen wird. Dieser codierte URL wird für nachfolgende Anforderungen an denselben Server verwendet.

Vorgehensweise

  1. Konfigurieren Sie den Server für die Aktivierung der Sitzungsüberwachung. Legen Sie über die Verwaltungskonsole entweder Sitzungscookies oder URL-Umschreibung als Mechanismus für die Sitzungsüberwachung fest. Lesen Sie die Informationen zur Konfiguration der Sitzungsüberwachung, um mehr darüber zu erfahren, wie Sitzungen mit Cookies oder URL-Umschreibung überwacht werden können.
  2. Aktivieren Sie die HTTP-Sitzungsverwaltung für den JAX-WS-Client. Sie können die Eigenschaft "maintainSession" in der Richtliniensatzbindung manuell auf true setzen.
    • Aktivieren Sie die Sitzungsverwaltung im Client über eine Richtliniensatzdatei für HTTP-Transporte. Die HTTP-Transportrichtlinie kann über die Administrationskonsole konfiguriert werden. Wählen Sie auf der Seite "Einstellungen für HTTP-Transport" das Kontrollkästchen Sitzungen aktivieren aus, um eine HTTP-Sitzung zu aktivieren. Informationen zum Definieren dieser Eigenschaft finden Sie in der Dokumentation zur Konfiguration von HTTP-Transporteigenschaften. Sie können die Eigenschaft maintainSession auch manuell auf yes setzen, um die HTTP-Sitzungsverwaltung zu aktivieren.
    • Aktivieren Sie die Sitzungsverwaltung im Client, in dem Sie die JAX-WS-Eigenschaft javax.xml.ws.session.maintain auf true setzen.

Ergebnisse

Sie haben die HTTP-Sitzungsverwaltung für Ihre JAX-WS-Anwendung aktiviert.

Beispiel

Das folgende Beispiel ist ein Auszug aus einem Richtliniensatz für HTTP-Transporte, der veranschaulicht, wie die Eigenschaft maintainSession definiert wird:
<!-- Richtlinientyp für den HTTP-Transport -->
        <wsp:ExactlyOne>
                <wsp:All>
                        <wshttp:readTimeout>300</wshttp:readTimeout>
                        <wshttp:writeTimeout>300</wshttp:writeTimeout>
                        <wshttp:connectTimeout>180</wshttp:connectTimeout>
                        <wshttp:persistConnection>yes</wshttp:persistConnection>
                        <wshttp:messageResendOnce>no</wshttp:messageResendOnce>
                        <wshttp:chunkTransferEnc>no</wshttp:chunkTransferEnc>
                        <wshttp:acceptRedirectedURL>no</wshttp:acceptRedirectedURL>
                        <wshttp:sendExpectHeader>no</wshttp:sendExpectHeader>
                        <wshttp:maintainSession>yes</wshttp:maintainSession>
                        <wshttp:compressRequest>
                                <wshttp:compressType name="none"></wshttp:compressType>
                        </wshttp:compressRequest>
                        <wshttp:compressResponse>
                                <wshttp:compressType name="none"></wshttp:compressType>
                        </wshttp:compressResponse>
                        <wshttp:protocolVersion>HTTP/1.1</wshttp:protocolVersion>
                </wsp:All>
        </wsp:ExactlyOne>
Das folgende Codebeispiel veranschaulicht, wie die Sitzungsverwaltung im Client über das Programm aktiviert wird, indem die Eigenschaft "javax.xml.ws.session.maintain" für das richtige JAX-WS-Objekt gesetzt wird.
Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
...
...
rc.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, Boolean.TRUE);
...
...


Symbol, das den Typ des Artikels anzeigt. Taskartikel



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