我是JAX-WS的新手,我想在我的肥皂处理程序的响应数据中获取一个值,但我不知道如何。
以下是XML中的soap响应:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tsn="http://TestSession/BSCS_SessionManager" xmlns:ses="http://TestSession">
<soapenv:Header/>
<soapenv:Body>
<tsn:LogonResponse>
<ses:CS_ServiceHeader>
<SourceSystem>SRCSYS</SourceSystem>
<TargetSystem>TGTSYS</TargetSystem>
<ExternalID>20150525043213</ExternalID>
<AgentName>JOHNDOE</AgentName>
</ses:CS_ServiceHeader>
<ses:CS_LogonResponse>
<CS_LogonResponseData>
<Signature>b9n9+BWWvJ0=|Qe9HGWuQXKt8zb6oaIoseiyIMsdy+svIYASZJLEy6bhmICr4LkNkOHrvLeDWAItQ7YU17N0eRDq0X36Ls8GSXR75SDsovL6DjAgSpN0AuC/BEkTJcQjVft1buhqfiyMrHsoqMU9c2vM=</Signature>
</CS_LogonResponseData>
</ses:CS_LogonResponse>
<ses:Trailer>
<Version>0.0.1</Version>
</ses:Trailer>
</tsn:LogonResponse>
</soapenv:Body>
</soapenv:Envelope>
我想在<Signature>
内获得<CS_LogonResponseData>
的值。我使用了以下内容,但它似乎仅适用于独立应用程序。
代码:
SOAPMessage soapMsg = context.getMessage();
SOAPBody body = soapMsg.getSOAPBody();
body.getChildNodes().item(0).getChildNodes().item(3).getChildNodes().item(1).getChildNodes().item(1).getTextContent();
当我在项目中使用相同的代码时...结果始终为null。
我是否可以从响应数据导航并获取<Signature>
的值...当作为独立应用程序运行时以及通过tomcat运行时,childnodes项目索引似乎正在发生变化。
我将需要我的其他操作的resquest数据中的签名值(如注销等)。
提前致谢