2017-09-07 150 views
-1

我想找出使用​​oasis xsd解析響應的最佳方法。我有以下響應xml字符串,但不知道如何解析它,我試圖從綠洲複製xsd,但它無法創建jaxb對象。這是XML響應數據:解析綠洲xml文檔

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
<soap:Header> 
    <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
    <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-521833581"> 
    <wsu:Created>2017-09-07T00:00:02.002Z</wsu:Created> 
</wsu:Timestamp> 
</wsse:Security> 
</soap:Header> 
<soap:Body> 
    <soap:Fault xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:c="urn:schemas-visa-com:transaction-data-1.0"> 
    <faultcode>wsse:FailedCheck</faultcode> 
    <faultstring> 
     Security Data : UsernameToken authentication failed. 
    </faultstring> 
</soap:Fault> 
</soap:Body> 
</soap:Envelope> 

回答

0

找到一種簡單的解決方案,沒有執行這樣ofcource,只是一個例證:

SOAPBody body = soapResponse.getSOAPBody(); 
    if(body.hasFault()){ 
     LOG.debug("HAS LOG FAULT, LETS SEE WHAT ELSE..."); 
     LOG.debug("getFaultCode" + body.getFault().getFaultCode()); 
     LOG.debug("getFaultString" + body.getFault().getFaultString()); 
    }