Exception in thread "main" java.lang.ClassCastException: com.sun.xml.internal.messaging.saaj.soap.impl.TextImpl cannot be cast to javax.xml.soap.SOAPElement
at com.ddtech.test.Test.main(Test.java:142)
private static SOAPMessage formatSoapString(String soapString) {
MessageFactory msgFactory;
try {
msgFactory = MessageFactory.newInstance();
SOAPMessage reqMsg = msgFactory.createMessage(new MimeHeaders(),
new ByteArrayInputStream(soapString.getBytes("UTF-8")));
reqMsg.saveChanges();
return reqMsg;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
String soapStr="<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
+"<soap:Body>"
+"<ns2:getITSMEventInfoResponse xmlns:ns2=\"http://itsm.soa.csg.cn\"> "
+"<ns2:EventList>"
+"<Event>"
+"<eventID>EN2016010100001</eventID>"
+"<appealTime>2017-06-07 13:33:12</appealTime>"
+"<regionID>zcgl.group</regionID>"
+"<regionName>南网资产</regionName>"
+"<area>云南/文山地区/文山供电局</area>"
+"<callEvent>0</callEvent>"
+"<appealNum>80026</appealNum>"
+"<appealName>尚晓帆</appealName>"
+"<occurTime>2017-06-07 13:33:12</occurTime>"
+"<createmanName>尚晓帆</createmanName>"
+"<createmanTime> 2017-06-07 13:33:12 </createmanTime>"
+"<eventTitle>安全生产管理系统台账编辑错误</eventTitle>"
+"<eventType>应用系统/CSGII业务域/南方电网公司资产管理信息系统</eventType>"
+"<eventQuality>业务咨询</eventQuality>"
+"<exigence>低</exigence>"
+"<eventAils>用户在安全生产管理系统-一个移交单台账编辑的时候报错。帮助用户远程替换也不行</eventAils>"
+"<endsummry>单子无工作区,gis还没绘图,无此问题</endsummry>"
+"<lastuserName>杨军军</lastuserName>"
+"<startTime> 2017-06-07 13:33:12 </startTime>"
+"<endTime> 2017-06-07 13:33:12 </endTime>"
+"<eventStatus>工单已关闭</eventStatus>"
+"<solveTime>2017-06-07 13:33:12</solveTime>"
+"<respondTime>27263</respondTime>"
+"<disposeTime>27275</disposeTime>"
+"<isRespond>1</isRespond>"
+"<isSolve>0</isSolve>"
+"<satisfaction>满意</satisfaction>"
+"<scene>客服中心</scene>"
+"<solveLogo>1</solveLogo>"
+"<isExterior>未标记</isExterior>"
+"<eventEndLogo>三线根本解决</eventEndLogo>"
+"</Event>"
+"</ns2:EventList>"
+"</ns2:getITSMEventInfoResponse> "
+"</soap:Body>"
+"</soap:Envelope>";
SOAPMessage msg = formatSoapString(soapStr);
SOAPBody body = msg.getSOAPBody();
Iterator<SOAPElement> iterator = body.getChildElements();
while (iterator.hasNext()) {
SOAPElement element= iterator.next();
if ("ns2:getITSMEventInfoResponse".equals(element.getNodeName())) {
System.out.println(element.getNodeName());
Iterator<SOAPElement> it = element.getChildElements();
SOAPElement el = null;
while (it.hasNext()) {
el=it.next();
if ("EventList".equals(el.getNodeName())) {
Iterator<SOAPElement> it1 = el.getChildElements();
SOAPElement el1 = null;
while (it1.hasNext()) {
el1=it1.next();
if ("Event".equals(el1.getNodeName())) {
Iterator<SOAPElement> it2 = el1.getChildElements();
SOAPElement el2 = null;
while (it2.hasNext()) {
el2=it2.next();
System.out.println(el2.getNodeName()+":"+el2.getValue());
}
}
}
}
}
}
}