0
javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"html"). Expected elements are <{}user>
Userクラスは、ブラウザを介してWebサービスにアクセスするユーザーのXML表現を表示し、@XmlRootElement
でアノテートされ
クライアントコード(私が使用しMediaType.TEXT_HTML
RestClientException
原因MediaType.APPLICATION_XML
理由):
RestTemplate restTemplate = new RestTemplate();
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
Jaxb2RootElementHttpMessageConverter jaxbMessageConverter = new Jaxb2RootElementHttpMessageConverter();
List<MediaType> mediaTypes = new ArrayList<MediaType>();
mediaTypes.add(MediaType.TEXT_HTML);
jaxbMessageConverter.setSupportedMediaTypes(mediaTypes);
messageConverters.add(jaxbMessageConverter);
restTemplate.setMessageConverters(messageConverters);
User x = restTemplate.getForObject("http://localhost:8080/Online_Shopping/dispatcher/rest/hello",User.class);
Webサービスコード:
@Controller
@RequestMapping(value = "/rest")
public class RESTController {
@RequestMapping(value = "/hello",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_XML_VALUE)
public @ResponseBody User getUser() {
return new User("paymon","123",true);
}
}
application/xmlで取得しているRestClientExceptionの詳細を記載できますか? Acceptヘッダーを渡していないことがわかります。だからあなたが406を受け入れていないなら、受け入れられない。 Acceptヘッダーが存在しない理由 –
org.springframework.web.client.RestClientException:応答を抽出できませんでした:レスポンスタイプ[class com.shopping.model.User]とコンテンツタイプ[text/html; charset = ISO-8859-1] –
Paymon、RestTemplateコードに 'mediaTypes.add(MediaType.APPLICATION_XML_VALUE);'を追加して、今すぐ取得できるRestClientExceptionを教えてください。 –