我想获取一个 Web 服务的原始 XML 响应,而不是通常的 POJO 集合。
我正在使用从 WSDL 和一些模式生成的 webservice 客户端(因此我可以访问客户端代码)。这个客户端是在 RAD 7.5 中生成的,我认为是使用 JAX-WS。我一直在查看客户端代码本身,但我甚至不确定客户端代码是否处理原始 XML 或者它是否将其传递给其他库。
我想获取一个 Web 服务的原始 XML 响应,而不是通常的 POJO 集合。
我正在使用从 WSDL 和一些模式生成的 webservice 客户端(因此我可以访问客户端代码)。这个客户端是在 RAD 7.5 中生成的,我认为是使用 JAX-WS。我一直在查看客户端代码本身,但我甚至不确定客户端代码是否处理原始 XML 或者它是否将其传递给其他库。
您可以使用以下方法实现:
javax.xml.ws.handler.soap.SOAPHandler<javax.xml.ws.handler.soap.SOAPMessageContext>
SOAPMessageContext#getMessage()
方法获取消息,并使用该方法将消息转换为字符串。 public static String getXmlMessage(SOAPMessage message) throws Exception
{
ByteArrayOutputStream os = new ByteArrayOutputStream();
message.writeTo(os);
final String encoding = (String) message.getProperty(SOAPMessage.CHARACTER_SET_ENCODING);
if (encoding == null)
{
return new String(os.toByteArray());
}
else
{
return new String(os.toByteArray(), encoding);
}
}
此外,您可以在这里了解有关客户端SOAP处理程序的信息。
文章