簡體   English   中英

從 Java Web 服務客戶端獲取原始 XML 響應

[英]Getting raw XML response from Java web service client

我正在嘗試從 Web 服務獲取原始 XML 響應,而不是通常的 POJO 集。

我正在使用從 WSDL 和一些模式生成的 Web 服務客戶端(因此我可以訪問客戶端的代碼)。 客戶端是在 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 處理程序
文章

它沒有被廣泛記錄,但您可以使用Dispatch接口來實現直接使用 XML 工作的 JAXWS 客戶端。 這里這里有一些入門文章。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM