2014-01-23 68 views
0

我使用的Axis2創建ADB-存根訪問SOAP服務,我應該響應得到的sessionId和餅乾,然後用另一個請求發送...如何讓HTTP響應頭存根

我需要得到這個參數你可以在圖片

http://www.imageup.ru/img36/1635686/skrinshot-2014-01-23-104646.png

MessageContext msgCtx = serviceStub._getServiceClient().getLastOperationContext().getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE); 
msgCtx.getProperty(HTTPConstants.HTTP_HEADERS); 
SOAPHeader soapHeader = msgCtx.getEnvelope().getHeader(); 

我想這些看到的,但我能得到導致:( 我設立manageSession參數爲true。

當我debuged請求和響應我得到了下面的日誌:

2014/01/23 12:35:55:372 ALMT [DEBUG] header - << "HTTP/1.1 200 OK[\r][\n]" 
2014/01/23 12:35:55:372 ALMT [DEBUG] header - << "HTTP/1.1 200 OK[\r][\n]" 
2014/01/23 12:35:55:372 ALMT [DEBUG] header - << "Cache-Control: private, max-age=0[\r][\n]" 
2014/01/23 12:35:55:372 ALMT [DEBUG] header - << "Content-Length: 505[\r][\n]" 
2014/01/23 12:35:55:372 ALMT [DEBUG] header - << "Content-Type: text/xml; charset=utf-8[\r][\n]" 
2014/01/23 12:35:55:372 ALMT [DEBUG] header - << "Server: Microsoft-IIS/7.5[\r][\n]" 
2014/01/23 12:35:55:382 ALMT [DEBUG] header - << "X-AspNet-Version: 2.0.50727[\r][\n]" 
2014/01/23 12:35:55:382 ALMT [DEBUG] header - << "Set-Cookie: ASP.NET_SessionId=agj1njnpvoerup45tqnmsz45; path=/; HttpOnly[\r][\n]" 
2014/01/23 12:35:55:382 ALMT [DEBUG] header - << "X-Powered-By: ASP.NET[\r][\n]" 
2014/01/23 12:35:55:382 ALMT [DEBUG] header - << "Date: Thu, 23 Jan 2014 06:35:59 GMT[\r][\n]" 
2014/01/23 12:35:55:382 ALMT [DEBUG] header - << "[\r][\n]" 
2014/01/23 12:35:55:382 ALMT [DEBUG] CookieSpec - Unrecognized cookie attribute: name=HttpOnly, value=null 
2014/01/23 12:35:55:382 ALMT [DEBUG] HttpMethodBase - Cookie accepted: "$Version=0; ASP.NET_SessionId=agj1njnpvoerup45tqnmsz45; $Path=/" 

請幫助我。

回答

3

多痛苦之後,我找到了答案...... 我檢索Axis2的存根響應餅乾下面的代碼:

 

     CommonsTransportHeaders cth = (CommonsTransportHeaders) msgCtx.getProperty(MessageContext.TRANSPORT_HEADERS); 
     String cookie = (String) cth.get(WSConstants.SET_COOKIE); 
 

我希望這會幫助別人:)