2013-05-20 43 views
0

我使用AXIS2作爲處理SOAP響應的客戶端。客戶端存根使用WSDL2JAVA命令生成。爲了解決問題,我試圖讀取存儲在生成的存根控件的.xml文件中的xml響應,並將其分配給SOAPEnvelope。下面是寫入裝載.XML內容的代碼:AXIS 2:java.lang.ClassCastException:com.sun.org.apache.xerces.internal.dom.DeferredElementNSImpl無法轉換爲org.apache.axiom.om.OMElement

InputStream is = new ByteArrayInputStream((sb.toString()).getBytes()); 
javax.xml.parsers.DocumentBuilderFactory factory = avax.xml.parsers.DocumentBuilderFactory.newInstance(); 
    factory.setNamespaceAware(true); 
    javax.xml.parsers.DocumentBuilder builder = null; 
    builder = factory.newDocumentBuilder(); 
    org.w3c.dom.Document doc = builder.parse(is); 
    System.out.println("Got Document .............."); 
    is.close(); 
org.apache.axis2.saaj.util.SAAJUtil su = new org.apache.axis2.saaj.util.SAAJUtil(); 
org.apache.axiom.soap.SOAPEnvelope _returnEnv1 = su.getSOAPEnvelopeFromDOOMDocument(doc); 

上午在代碼的最後一行得到ClassCastException異常(分配到的SoapEnvelope)。 有人可以幫助我這個。

回答

0

Axis2clients用於發送請求並接收響應。你爲什麼要加載文件的響應?您應該收到後端服務的響應。查看本指南以瞭解clientapi。您還可以在axis2文檔中找到詳細指南。

+0

感謝您的回覆......我確實從後端服務獲取響應,並將響應保存在xml文件中。我收到的數據不會在第二天相同(記錄每晚更新)。我將數據保存到一個文件,以便我可以測試和驗證是否有任何錯誤的數據...並修復任何問題raise.most的問題是可重現的。但我有一個不容易重現的問題。所以想到在XML中使用保存的SOAP響應並重現並修復問題...請讓我知道是否有任何其他方式訪問保存的數據並將其分配給SOAPEnvelope。 – mangala

相關問題