2013-02-07 145 views
0

我正在使用NetBeans IDE編寫Web服務客戶端。我已經添加使用WSDL的web服務的來源和用於響應POJO類包含例如僅兩個參數的方法之一:從響應+ java web服務獲取頭字段值的問題

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "WithdrawTicket") 
public class WithdrawTicket { 

@XmlAttribute(name = "firstName") 
protected String firstName; 
@XmlAttribute(name = "lastName") 
protected String lastName; 
... //getters and setters 

響應XML包含在主體部分上方的兩個字段(firstName和lastName),並且還包含頭部分。頭部分包含用私鑰和身份證書和摘要值簽名的XML主體。我必須驗證傳入的XML,我的問題是如何在Header部分中獲取字段值? 在此先感謝!

回答

0

您可以定義一個SOAP處理程序來執行該任務,或者簡單地在SOAPMessage實例上發出.getHeader()。 詳細here

+0

謝謝!但我總是得到MessageCreationException:由於異常,無法創建SOAP消息:XML讀取器錯誤:javax.xml.stream.XMLStreamException:[row,col]處的ParseError:[1,1]消息:內容在prolog中是不允許的。我認爲我必須添加頭字段來響應POJO類,似乎傳入的消息本身已經壞了,無法解析。如何在解析之前處理xml,只需要刪除xml中的所有無效字符(如果有的話)?謝謝! –

+0

你是否收到SOAPHAndler的消息?或者你可以監控http流量? – TheWhiteRabbit

+0

不,我想我沒有得到任何消息給SOAPHandler,(布爾)messagecontext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY)值始終爲真,只要檢查它與System.out.println如果messageHandle方法被調用,並且所有消息被髮送通過https協議,所以我無法讀取傳入的XML,即使我使用嗅探器。 –