从Java Web服务客户端获取原始XML响应
我试图从Web服务获取原始XML响应,而不是通常的POJO集。
我正在使用我从WSDL和一些模式生成的webservice客户端(所以我可以访问客户端的代码)。 客户端是在RAD 7.5中生成的,我认为使用JAX-WS。 我一直在查看客户端代码本身,但我甚至不确定客户端代码是否处理原始XML或者是否将其传递给其他库。
你可以用它来做
javax.xml.ws.handler.soap.SOAPHandler
您可以使用SOAPMessageContext#getMessage()
简单地获取消息,并使用方法将消息转换为String
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处理程序的信息
文章
它没有被广泛记录,但您可以使用Dispatch接口来实现直接使用XML的JAXWS客户端。 这里和这里有一些入门文章。