Wie man JAX-WS webservice reagieren JSESSIONID (session-id)
Ich bin ein Neuling in web-services. Ich habe einen JAX-WS-service, die ich brauche, um zu implementieren, session-Mechanismus. Die SOAP-Nachrichten über HTTP transportiert werden, verwenden wir WebLogic, so JAXWS-Anwendung ist die Bereitstellung auf WebLogic app server und die services zugänglich sind, die aus WSDL-Dokument.
Habe ich @WebServiceProvider (Klasse implementiert Provider< SOAPMessage >)
Wenn ich jetzt Feuer eine login-Anfrage möchte ich JSESSIONID session-cookie zurück zu senden, aber wir wollen nicht zu verwenden, CXF oder sonst etwas, nur so genannte U-Bahn, die ich ehrlich gesagt noch nicht vollständig verstehen. Wir wollen auch nicht zu machen dies zu einem dauerhaften cookie, also manuell hinzufügen einen cookie im response-header ist auch keine option. Aber das funktioniert, ich habe es versucht. Ich verstehe einfach nicht, warum Sitzungs-cookie wird nicht automatisch eingestellt.
Ich habe die Suche im Internet und versuchen viele Sachen für 4 Tage jetzt, nichts funktioniert. Bitte helfen Sie.
- Nisa, die Sie erwähnt die QUELLE verwendet werden. aber der code, den Sie geschrieben in diesem thread verwendet HTTPBinding.HTTP_BINDING . Ist es richtig ?
- gemäß der Dokumentation fand ich damals (dont habe die links jetzt) das ist richtig, aber wir beschlossen zu gehen mit der Lösung hinzufügen manuell ein cookie (Einstellung der Ablaufzeit auf 0 bewirkt, dass das cookie nicht-persistent), das ist gut genug für uns.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Regel nur den Zugriff auf die HttpSession in Ihrem web-service sollte ausreichend sein, um das session-cookie in Ihrer Antwort.
Können Sie dies tun, indem die Injektion der WebServiceContext in Ihre web-Dienst wie so --
((BindingProvider)proxy).getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
Fand ich die Antwort auf meine eigene Frage. Die Frage war in der Art der Bindungen werden in WebServiceProvider Umsetzung. Wenn der HTTP-Bindung ist dann SOAPMessage kann nicht verwendet werden, als eine Art für die Anbieter. Die richtige Lösung ist die Verwendung von Source (nicht sicher, ob etwas anderes verwendet werden kann, auch nicht versuchen), d.h.