2

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

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

4

2 回答 2

2

您可以使用

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 处理程序的
文章

于 2012-08-15T20:26:55.210 回答
1

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

于 2012-08-15T20:13:50.947 回答