Hallo,
ich habe einen Test-WebService geschrieben, welcher nur die Version und andere Test-Daten zurück geben soll.
Unter @Produces habe ich jeder Methode eigene spezifische MediaTypes zugeordnet.
public class RestEndpoint {
@Context HttpServletRequest request;
@GET
@Path("/getVersion")
@Produces({ MediaType.APPLICATION_JSON + ";charset=utf-8" })
public Response getVersion() throws Exception{
return Response.ok("{version:\""+Initialisation.VERSION+"\"}").build();
}
@GET
@Path("/getTest001")
@Produces({ MediaType.APPLICATION_XML + ";charset=utf-8", MediaType.APPLICATION_JSON + ";charset=utf-8", "text/csv;charset=utf-8" })
public Response getTest001() throws Exception{
return Response.ok(new TestClass()).build();
}
...
Ich habe für die XML- und CSV-MediaTypes entsprechende MessageBodyWriter erstellt. Das Funktioniert auch soweit.
In der web.xml habe ich folgende MediaTypeMappings durchgeführt.
[XML]
resteasy.media.type.mappings
xml : application/xml;charset=UTF-8, json : application/json;charset=UTF-8, csv : text/csv
[/XML]
Wenn ich jetzt eine Methode über den Browser aufrufe und ich keinen gültigen MediaType angebe, sucht sich der Server einen MediaType aus der @Produces-Liste heraus.
Ich möchte aber, das der Fehler 406 “Not Acceptable” erzeugt wird.
Beispie:
URL: http://localhost:8080/testws/api/getVersion.xml
IST-Antwort: {version:“1.0.0”}
SOLL-Antwort: HTTP-Fehler 406 “Not Acceptable”
Kann mir bitte jemand helfen und mir sagen, was ich anpassen muss?
Danke & Grüße
Hans