【发布时间】:2012-08-15 19:52:22
【问题描述】:
我正在尝试从 Web 服务获取原始 XML 响应,而不是通常的 POJO 集。
我正在使用从 WSDL 和一些模式生成的 Web 服务客户端(因此我可以访问客户端的代码)。客户端是在 RAD 7.5 中生成的,我认为使用 JAX-WS。我一直在查看客户端代码本身,但我什至不确定客户端代码是否曾经处理原始 XML,或者是否将其传递给其他库。
【问题讨论】:
标签: java web-services jax-ws rad
我正在尝试从 Web 服务获取原始 XML 响应,而不是通常的 POJO 集。
我正在使用从 WSDL 和一些模式生成的 Web 服务客户端(因此我可以访问客户端的代码)。客户端是在 RAD 7.5 中生成的,我认为使用 JAX-WS。我一直在查看客户端代码本身,但我什至不确定客户端代码是否曾经处理原始 XML,或者是否将其传递给其他库。
【问题讨论】:
标签: java web-services jax-ws rad
你可以使用
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 处理程序
Article
【讨论】: