Java 从SOAP响应中获取值

Java 从SOAP响应中获取值,java,jakarta-ee,soap,Java,Jakarta Ee,Soap,我有这样一句话: SOAPMessage-soapResponse=soapConnection.call(消息,url) 回应如下: HTTP/1.1 200 OK Content-Type: text/xml;charset=UTF-8 Transfer-Encoding: chunked Date: Wed, 24 Jul 2013 07:44:39 GMT Server: Apache-Coyote/1.1 <soapenv:Envelope xmlns:soapenv="htt

我有这样一句话:

SOAPMessage-soapResponse=soapConnection.call(消息,url)

回应如下:

HTTP/1.1 200 OK
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Wed, 24 Jul 2013 07:44:39 GMT
Server: Apache-Coyote/1.1

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Header>
  <TransactionID soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="1" xmlns="http://somelink"></TransactionID>
 </soapenv:Header>
 <soapenv:Body>
  <soap-env:Fault xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
   <soap-env:faultcode>Server</soap-env:faultcode>
   <soap-env:faultstring>Server Error</soap-env:faultstring>
   <soap-env:Detail>
    <soap-env:Status>
     <soap-env:StatusCode>3000</soap-env:StatusCode>
     <soap-env:StatusText>Server Error</soap-env:StatusText>
     <soap-env:Details></soap-env:Details>
    </soap-env:Status>
   </soap-env:Detail>
  </soap-env:Fault>
 </soapenv:Body>
</soapenv:Envelope>
但得到了类强制类型异常 } Edit2:解决方案:

soapResponse.getSOAPPart().getEnvelope().getBody().getFault().getDetail().getTextContent().trim().substring(0, 4));

  • 从开始,您需要呼叫以获取
  • 通过拨打电话,您可以获得以下信息:
  • 下一步,你可以使用
  • 现在你可以通过打电话来获取信息
  • 下一步,您将调用以获取
  • 使用,可以迭代
    详细信息
    对象中的所有
  • 由于接口扩展了接口,所以可以通过调用;这样,您就可以导航到
    Status
    元素中的
    StatusCode
    元素并获取其值

是哪一行导致了
ClassCastException
?如果是第一行,请将其分解为单个语句,以便跟踪抛出的位置。请注意,您不需要将
DetailEntry
强制转换为
SOAPElement
-您可以自动使用
SOAPElement
中的方法。
soapResponse.getSOAPPart().getEnvelope().getBody().getFault().getDetail().getTextContent().trim().substring(0, 4));
soapResponse.getBody().getFault().getFaultCode()
and iterate on : 

soapResponse.getBody().getFault().getDetailEntries()