我使用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)。 有人可以帮我解决这个问题。
答案 0 :(得分:0)
Axis2clients用于发送请求和接收响应。为什么要尝试从文件加载响应?您应该从后端服务收到响应。查看本指南以了解clientapi。您也可以在axis2文档中找到详细指南。