从Java Web服务客户端获取原始XML响应

时间:2012-08-15 19:52:23

标签: java web-services jax-ws rad

我正在尝试从Web服务获取原始XML响应,而不是通常的POJO集。

我正在使用我从WSDL和一些模式生成的webservice客户端(所以我可以访问客户端的代码)。客户端是在RAD 7.5中生成的,我认为使用JAX-WS。我一直在查看客户端代码本身,但我甚至不确定客户端代码是否处理原始XML或者是否将其传递给其他库。

2 个答案:

答案 0 :(得分:2)

您可以使用

执行此操作
javax.xml.ws.handler.soap.SOAPHandler<javax.xml.ws.handler.soap.SOAPMessageContext>

您可以使用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处理程序的信息 Article

答案 1 :(得分:1)

它没有被广泛记录,但您可以使用Dispatch接口来实现直接使用XML的JAXWS客户端。 Herehere是一些入门文章。