package th.co.ais.ssbsrfc.control; import java.io.ByteArrayInputStream; import java.io.File; import java.io.Reader; import java.io.StringReader; import java.util.Scanner; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBElement; import javax.xml.bind.Unmarshaller; import javax.xml.soap.MessageFactory; import javax.xml.soap.SOAPBody; import javax.xml.soap.SOAPMessage; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamReader; import th.co.ais.ssbsrfc.instance.AdjustmentRequestRes; import th.co.ais.ssbsrfc.instance.ResultHeader; public class TestMain { static AdjustmentRequestRes adj = new AdjustmentRequestRes(); static ResultHeader res = new ResultHeader(); public static Object fromSoap(String strSoap, Class objClass) { Object obj = null; try { SOAPMessage message = MessageFactory.newInstance().createMessage(null, new ByteArrayInputStream(strSoap.getBytes())); Unmarshaller unmarshaller = JAXBContext.newInstance(objClass).createUnmarshaller(); SOAPBody body = message.getSOAPBody(); if(body != null && !body.getTextContent().trim().equals("")) { obj = unmarshaller.unmarshal(body.extractContentAsDocument()); } } catch (Exception e) { e.printStackTrace(); } return obj; } public static void main(String[] args) throws Exception { String value = new Scanner(new File("D:\\car.xml")).useDelimiter("\\Z").next(); String [] valuex = value.split("",-1); String [] valuey = value.split("", -1); String msg = ""; String x = valuey[0]+valuex[1]; Reader reader = new StringReader(value); XMLInputFactory factory = XMLInputFactory.newInstance(); // Or newFactory() XMLStreamReader xsr = factory.createXMLStreamReader(reader); Reader readerx = new StringReader(x); XMLInputFactory factoryx = XMLInputFactory.newInstance(); // Or newFactory() XMLStreamReader xsrx = factoryx.createXMLStreamReader(readerx); xsr.nextTag(); xsrx.nextTag(); while(!xsr.getLocalName().equals("ResultHeader")) { xsr.nextTag(); } while(!xsrx.getLocalName().equals("AdjustmentResult")) { xsrx.nextTag(); } JAXBContext jc = JAXBContext.newInstance(AdjustmentRequestRes.class); Unmarshaller unmarshaller = jc.createUnmarshaller(); JAXBElement jb = unmarshaller.unmarshal(xsrx, AdjustmentRequestRes.class); xsrx.close(); adj = jb.getValue(); jc = JAXBContext.newInstance(ResultHeader.class); unmarshaller = jc.createUnmarshaller(); JAXBElement jbe = unmarshaller.unmarshal(xsr, ResultHeader.class); res = jbe.getValue(); System.out.println("getVersion:"+res.getVersion()); System.out.println("getMsgLanguageCode:"+res.getMsgLanguageCode()); System.out.println("getAcctKey:"+adj.getAcctKey()); System.out.println("getBalanceID:"+adj.getAdjustmentInfo().get(0).getBalanceID()); //System.out.println("Version:"+customer.getresultHeader().getVersion()); /* System.out.println("ResultCode:"+customer.ResultCode); System.out.println("MsgLanguageCode:"+customer.MsgLanguageCode); System.out.println("ResultDesc:"+customer.ResultDesc); System.out.println("AcctKey:"+customer.AcctKey); System.out.println("BalanceID:"+customer.AdjustmentInfo.get(0).getBalanceID()); System.out.println("BalanceType:"+customer.AdjustmentInfo.get(0).getBalanceType()); System.out.println("BalanceTypeName:"+customer.AdjustmentInfo.get(0).getBalanceTypeName()); System.out.println("CurrencyID:"+customer.AdjustmentInfo.get(0).CurrencyID); System.out.println("NewBalanceAmt:"+customer.AdjustmentInfo.get(0).NewBalanceAmt); System.out.println("OldBalanceAmt:"+customer.AdjustmentInfo.get(0).OldBalanceAmt); */ } }