AXIS 2:java.lang.ClassCastException:com.sun.org.apache.xerces.internal.dom.DeferredElementNSImpl无法强制转换为org.apache.axiom.om.OMElement

时间:2013-05-20 17:02:44

标签: soap axis2

我使用AXIS2作为客户端来处理SOAP响应。使用WSDL2JAVA命令生成客户端存根。为了解决问题,我试图读取存储在生成的存根中的.xml文件中的xml响应,并分配给SOAPEnvelope。下面是为加载.xml内容编写的代码:

InputStream is = new ByteArrayInputStream((sb.toString()).getBytes());
javax.xml.parsers.DocumentBuilderFactory factory = avax.xml.parsers.DocumentBuilderFactory.newInstance();
    factory.setNamespaceAware(true);
    javax.xml.parsers.DocumentBuilder builder = null;
    builder = factory.newDocumentBuilder();
    org.w3c.dom.Document doc = builder.parse(is);
    System.out.println("Got Document ..............");
    is.close();
org.apache.axis2.saaj.util.SAAJUtil su = new org.apache.axis2.saaj.util.SAAJUtil();
org.apache.axiom.soap.SOAPEnvelope _returnEnv1 = su.getSOAPEnvelopeFromDOOMDocument(doc);

在代码的最后一行得到ClassCastException(分配给SOAPEnvelope)。 有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

Axis2clients用于发送请求和接收响应。为什么要尝试从文件加载响应?您应该从后端服务收到响应。查看本指南以了解clientapi。您也可以在axis2文档中找到详细指南。