Ci stiamo integrando con una terza parte che sta inviando xml con l'intestazione content-type come text/html. Stavamo pianificando di utilizzare Spring's RestTemplate per mapparlo alle classi che abbiamo generato da xsds, ma RestTemplate non riesce a trovare un convertitore appropriato da utilizzare per il contenuto. La terza parte rifiuta di correggere il tipo di contenuto perché potrebbe interrompere l'integrazione di altri partner.Force Spring RestTemplate per utilizzare XmlConverter
C'è un modo con RestTemplate di Spring per forzare l'utilizzo di un convertitore specifico? siamo fondamentalmente solo facendo quanto segue:
RestTemplate restTemplate = new RestTemplate();
XmlClass xmlClass = restTemplate.getForObject("http://example.com/", XmlClass.class);
E ottenere la seguente eccezione:
org.springframework.web.client.RestClientException: Impossibile estrarre risposta: non adatto HttpMessageConverter trovato per la risposta digitare [XmlClass] e tipo di contenuto [text/html; charset = ISO-8859-1] a org.springframework.web.client.HttpMessageConverterExtractor.extractData (HttpMessageConverterExtractor.java:84)
Ho provato a cambiare l'intestazione di accettazione con l'intercettore per incoraggiarli a utilizzare l'intestazione corretta ma non ha funzionato. – Nathanial
Certo, ci avrei provato anche io. Intendo dire giocherellare l'intestazione * response *, dopo che la risposta è tornata. – artbristol
Abbiamo risolto il problema aggiungendo un altro convertitore di messaggi al restTamplate che accetta MediaType.TEXT_HTML. Non è l'ideale dato che crea un convertitore di messaggi jaxb ridondante, ma funziona - ho provato ad aggiungere il codice in una risposta, ma non me lo consente dato che non ho la replica. – Nathanial