将SOAP XML转换为Java对象

将SOAP XML转换为Java对象,soap,jax-ws,Soap,Jax Ws,我有一个完整的SOAP消息作为字符串。我使用wsimport从WSDL生成了一些相应的Java类。如何将SOAP消息转换为Java对象?这就是我最终得到的结果(映射到Java类型的示例Thingy): MessageFactory messageFactory = MessageFactory.newInstance(); ByteArrayInputStream soapStringStream = new ByteArrayInputStream(soapString.getBytes(Ch

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

这就是我最终得到的结果(映射到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);