2014-10-07 106 views
1

我在使用AXIS2存根使用第三方webservice。 WSToken使用AXIS2从SOAP响应中提取cookie

但我找不到任何方法 - :

boolean isValidUser(username, password); 

的Web服务应该响应标头中返回一个字符串(令牌)的饼干:我用优秀作品,并具有以下特征的主要方法从响应中提取标题和cookie。事实上,没有HTTPResponse对象来获取cookie!

我曾尝试这样的代码:

MessageContext context = stub._getServiceClient().getLastOperationContext().getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE); 
Object response = context.getProperty("response"); 

但是,因为在上下文中没有这样的属性,它返回一个空值。上下文具有以下属性:

transport.http.statusCode 
CHARACTER_SET_ENCODING 
TRANSPORT_HEADERS 
org.apache.axiom.om.util.DetachableInputStream 
messageType 
ContentType 
TRANSPORT_IN 

如何从使用存根的响应中获取名为'WSToken'的cookie?

+0

可能是,您应该使用轴处理程序,以便可视化所有肥皂内容,以获取令牌。 – Riadh 2014-10-14 09:57:47

+0

你是否用curl或soap-ui之类的东西来调试响应,所以你确定需要的头文件存在? – 2014-10-16 10:27:40

回答

0

TRANSPORT_HEADERS属性应该为您提供HTTP标头。然后您可以查找Set-Cookie标题。

+0

我可以使用'Set Cookie'标题获取一些cookie。但所需的cookie根本不可见。但是,当使用.NET代码而不是Java调用Web服务时,会获取所需的Cookie。 – 2014-10-14 14:12:05