2016-03-10 18 views
6

Spring RestTemplate aracılığıyla HTTP isteği üzerinden XML'i harici bir ağ geçidine gönderiyorum ve bir XML yanıtı geri alıyorum. Yanıtı doğrulamak için verilen XSD'nin bir hedef ad alanı vardır, ancak gerçek yanıt ad alanı önekini içermemektedir. Ben nedeniyle (unmarshalling sürecinde) gelen yanıt alırken ben hata altına alıyorum bu XSD ve kullanan Java kaynak yarattıRestTemplate içinde unmarshalling sırasında xml ad alanının göz ardı edilmesi

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

istisnadır: -

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

Spring ResponseEntity tarafından ad alanı denetimini atlamanın herhangi bir yolu var mı?

cevap

2

Bağlamalarınızı jaxb-plugin ile oluşturduysanız, 'package-info.java' olmalıdır. Örneğin

: Eğer ek açıklamadan ad kaldırırsanız çalışması gerekir

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

.

İlgili konular