2016-03-10 22 views
6

Spring RestTemplateを介してHTTP経由でXMLリクエストを外部ゲートウェイに送信しています。RestTemplateでアンマーシャリング中にxml名前空間を無視する

応答を検証するために指定されたXSDにはターゲット名前空間がありますが、実際の応答には名前空間接頭辞が含まれていません。

Exception in thread "main" javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"Response"). Expected elements are <{http://securetransport.dw/rcservice/xml}Response> 
- :私は例外がある、(非整列化プロセス中)からの応答を取得するとき、私は、エラーの下に取得しています

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

をXSDを使用してJavaリソースを生成し、このためにしています

Spring ResponseEntityから名前空間チェックをスキップする方法はありますか?

答えて

2

jaxb-pluginでバインディングを生成した場合は、 'package-info.java'が必要です。例えば

:あなたは注釈から名前空間を削除した場合、それが動作するはず

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