2016-03-10 175 views
6

我通過Spring RestTemplate將XML over HTTP請求發送到外部網關,並收到XML迴應。在RestTemplate中取消編組期間忽略xml名稱空間

爲驗證響應而提供的XSD具有目標名稱空間,但實際響應不包含名稱空間前綴。我已生成使用XSD和由於這種(在解組過程)正從響應時,我發現了以下錯誤的Java資源,

ResponseEntity<Response> responseEntity = restTemplate.exchange(endpointURL, HttpMethod.POST, requestEntity, 
       Response.class); 

唯一的例外是: -

Exception in thread "main" javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"Response"). Expected elements are <{http://securetransport.dw/rcservice/xml}Response> 

有沒有什麼辦法可以跳過Spring ResponseEntity的命名空間檢查?

回答

2

如果您使用jaxb-plugin生成了綁定,則應該有一個'package-info.java'。

例如:

@javax.xml.bind.annotation.XmlSchema(namespace = "someurl", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)

如果從註釋中刪除的命名空間應該工作。