package com.gs.xiaomi.util;
|
|
import com.gs.xiaomi.dto.BizDocument;
|
import com.gs.xiaomi.dto.ZfmWsApiRequest;
|
|
import javax.xml.bind.JAXBContext;
|
import javax.xml.bind.Marshaller;
|
import java.io.StringWriter;
|
|
public class SoapXmlBuilder {
|
|
public static String build(ZfmWsApiRequest req) throws Exception {
|
JAXBContext jaxbContext = JAXBContext.newInstance(BizDocument.class);
|
Marshaller marshaller = jaxbContext.createMarshaller();
|
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
|
|
StringWriter xmlWriter = new StringWriter();
|
marshaller.marshal(req.getIvInfo(), xmlWriter);
|
|
String innerXml = xmlWriter.toString().replace("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>", "").trim();
|
|
String wrappedXml = "<?xml version=\"1.0\" encoding=\"utf-16\"?>\n" + innerXml;
|
|
return String.format("<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:urn=\"urn:sap-com:document:sap:rfc:functions\">\n" + " <soapenv:Header/>\n" + " <soapenv:Body>\n" + " <urn:ZFM_WS_API>\n" + " <IV_CODE>%s</IV_CODE>\n" + " <IV_EVENT>%s</IV_EVENT>\n" + " <IV_FLAG>%s</IV_FLAG>\n" + " <IV_INFO><![CDATA[%s]]></IV_INFO>\n" + " <IV_PASS>%s</IV_PASS>\n" + " <IV_USER>%s</IV_USER>\n" + " </urn:ZFM_WS_API>\n" + " </soapenv:Body>\n" + "</soapenv:Envelope>", req.getIvCode(), req.getIvEvent(), req.getIvFlag(), wrappedXml, req.getIvPass(), req.getIvUser());
|
}
|
}
|