2015-07-16 3 views
0

Я получаю ответ от службы WFS и возвращается следующая ошибка. Кажется, что MediaType не поддерживается.Spring: Как избежать InvalidMimeTypeException в запросе WFS ("text/xml; subtype = gml/2.1.2")

org.springframework.http.InvalidMediaTypeException: Invalid mime type "text/xml; subtype=gml/2.1.2": Invalid token character '/' in token "gml/2.1.2" 
at org.springframework.http.MediaType.parseMediaType(MediaType.java:370) 
at org.springframework.http.HttpHeaders.getContentType(HttpHeaders.java:550) 
at org.springframework.web.client.HttpMessageConverterExtractor.getContentType(HttpMessageConverterExtractor.java:116) 
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:87) 
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:809) 
at org.springframework.web.client.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:793) 
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:572) 
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:530) 
at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:357) 

...

Caused by: org.springframework.util.InvalidMimeTypeException: Invalid mime type "text/xml; subtype=gml/2.1.2": Invalid token character '/' in token "gml/2.1.2" 
at org.springframework.util.MimeTypeUtils.parseMimeType(MimeTypeUtils.java:250) 
at org.springframework.http.MediaType.parseMediaType(MediaType.java:367) 

Я видел How to overcome Invalid token character caused by Content-Type=[text/xml; subtype=gml/2.1.2] in Spring HttpMessageConverterExtractor?, но я не в состоянии адаптировать это решение для моего подхода: Я не использую XML на основе, ни на основе пружинного интеграционного решения ,

Мой фрагмент кода:

RestTemplate template = new RestTemplate(); 
String url = "http://some.geo.server/wfs?"; 
String query = buildWFSSpatialQuery(geometry, type); 
ResponseEntity<String> entity = template.postForEntity(url, query, String.class); 

Где query что-то вроде

<wfs:GetFeature service="WFS" version="1.0.0" maxFeatures="1" xmlns:wfs="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"><wfs:Query .... 

Ошибка может быть очень легко воспроизведен:

org.springframework.http.MediaType.parseMediaType("text/xml; subtype=gml/2.1.2"); 
+0

Я нашел решение в http://stackoverflow.com/a/8101473/4827363. Используйте 'setDefaultResponseContentType (" text/xml; subtype = \ "gml/2.1.2 \" ")'. – codesmith

ответ

0

OK есть способ сделать это , Что вам нужно сделать ...

setDefaultResponseContentType("text/xml; subtype=\"gml/2.1.2\"") 

 Смежные вопросы

  • Нет связанных вопросов^_^