1、定义相关类
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="BirthCodeVo")
public class BirthCodeParam {
private String birthSoleNo;//编码
private String motherName;//姓名
private String motherId;//身份证
public String getBirthSoleNo() {
return birthSoleNo;
}
@XmlElement
public void setBirthSoleNo(String birthSoleNo) {
this.birthSoleNo = birthSoleNo;
}
public String getMotherName() {
return motherName;
}
@XmlElement
public void setMotherName(String motherName) {
this.motherName = motherName;
}
public String getMotherId() {
return motherId;
}
@XmlElement
public void setMotherId(String motherId) {
this.motherId = motherId;
}
}
2、xml
<?xml version="1.0" encoding="utf-8"?>
<ns2:udpEvent xmlns:ns2="http://www.report.test.cs.com/">
<!--UUID-->
<eventId>33445576e4-a222-567c-1234-gh33344466990b</eventId>
<formId/>
<operateId/>
<optType/>
<eventBody>
<BirthCodeVo>
<birthSoleNo>123</birthSoleNo>
<motherName>王红红</motherName>
<motherId>0001241984123456789</motherId>
</BirthCodeVo>
</eventBody>
<!--请求调用服务时间-->
<dtCreate>2015-01-31 14:39:08</dtCreate>
<useridCreate/>
<systemNumber/>
</ns2:udpEvent>
3、调用
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
import java.io.ByteArrayInputStream;
public BirthResult getBirthCode(String xml) {
BirthResult resultP = new BirthResult();
BirthCodeParam birthCodeParam = null;
StringBuffer birthCode = new StringBuffer();
try{
xml = xml.substring(xml.indexOf("<BirthCodeVo>"),
xml.lastIndexOf("</BirthCodeVo>") + 14);
log.info("======================解析xml:"+xml);
// 将xml字符串转换为java对象
try {
JAXBContext jaxbContext = JAXBContext.newInstance(BirthCodeParam.class);
Unmarshaller um = jaxbContext.createUnmarshaller();
birthCodeParam = (BirthCodeParam) um.unmarshal(new ByteArrayInputStream(xml.getBytes("UTF-8")));
} catch (Exception e) {
e.printStackTrace();
}
log.info("======================获取数据:"+birthCodeParam);
}catch(Exception e){
log.error("===============解析xml失败========================", e);
resultP.setSuccess(Constant.FAILURE);;
resultP.setMsg("服务请求失败");
return resultP;
}
}
4、xml,用soapui调用,需加上<![CDATA[ ]]>
<![CDATA[
<?xml version="1.0" encoding="utf-8"?>
<ns2:udpEvent xmlns:ns2="http://www.report.test.cs.com/">
<!--UUID-->
<eventId>33445576e4-a222-567c-1234-gh33344466990b</eventId>
<formId/>
<operateId/>
<optType/>
<eventBody>
<BirthCodeVo>
<birthSoleNo>123</birthSoleNo>
<motherName>王红红</motherName>
<motherId>0001241984123456789</motherId>
</BirthCodeVo>
</eventBody>
<!--请求调用服务时间-->
<dtCreate>2015-01-31 14:39:08</dtCreate>
<useridCreate/>
<systemNumber/>
</ns2:udpEvent>
]]>