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
Ergebnisse
Beispiel
<!-- 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>
Map<String, Object> rc = ((BindingProvider) port).getRequestContext();
...
...
rc.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, Boolean.TRUE);
...
...