将SOAP XML转换为Java对象

时间:2014-07-17 16:18:20

标签: soap jax-ws

我有一个完整的SOAP消息作为String。我有一些使用wsimport从WSDL生成的相应Java类。如何将SOAP消息转换为Java对象?

1 个答案:

答案 0 :(得分:2)

这就是我最终的结果(示例映射到Java类型Thingy):

MessageFactory messageFactory = MessageFactory.newInstance();
ByteArrayInputStream soapStringStream = new ByteArrayInputStream(soapString.getBytes(Charset.forName("UTF-8")));
SOAPMessage soapMessage = messageFactory.createMessage(new MimeHeaders(), soapStringStream);
Unmarshaller unmarshaller = JAXBContext.newInstance(Thingy.class).createUnmarshaller();
Document bodyDoc = soapMessage.getSOAPBody().extractContentAsDocument();
Thingy request = (Thingy) unmarshaller.unmarshal(bodyDoc);