メディアタイプ=アプリケーション/ xmlのが見つかりませんMessageBodyWriter:私はリクエストのHttpHeadersに応じて、2つの形式でのREST APIのレスポンスを作りたい
@Context
HttpHeaders headers;
public Response toResponse(MyValidationException exception) {
if(headers.getMediaType().toString().equals(MediaType.APPLICATION_XML)){
return Response.status(Status.BAD_REQUEST).entity(exception.getErrors()).type(MediaType.APPLICATION_XML).build();
}else{
return Response.status(Status.BAD_REQUEST).entity(exception.getErrors()).type(MediaType.APPLICATION_JSON).build();
}}
それはMediaType.APPLICATION_JSONのために働いていますが、のMediaType用.APPLICATION_XML次のエラーが表示されます。
org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo MessageBodyWriter not found for media type=application/xml, type=class java.util.HashMap$EntrySet, genericType=class java.util.HashMap$EntrySet.
この問題を解決するにはどうすればよいですか?
私が書いた例外をキャストするには: GenericEntity <地図<文字列、文字列>>エンティティ=(GenericEntity <地図<文字列、文字列>>)exception.getErrors(); しかし例外があります: java.lang.ClassCastException:java.util.HashMapをjavax.ws.rs.core.GenericEntityにキャストすることはできません –
オブジェクトを直接キャストしないでください。オブジェクトを直接キャストしないで、新たに作成してください: ' – ialex
私は試しましたが、私は投稿の同じ最初の問題があります://GenericEntity