Wie behandeln die falschen von JSON-Inhalten geben, die von web-services mit der JAX-RS-standard-client-API?

Will ich mit den Rotten Tomatoes-API, um die Suche für die Filme.

Habe ich eine gleichwertige, voll funktionsfähige Anwendung, die verwendet TMDB eher als Faule Tomaten.

Ich die standard JAX-RS-Client, zur Verfügung gestellt von JBoss RESTEasy mit dem RESTEasy Jackson2-Anbieter (ich kann nicht nach meinen API-key natürlich):

public MovieSearchResults search(String query) {
    return client
        .target("http://api.rottentomatoes.com/api/public/v1.0/movies.json")
        .queryParam("apikey", API_KEY)
        .queryParam("q", query)
        .request(MediaType.APPLICATION_JSON)
        .get(MovieSearchResults.class);
}

Den MovieSearchResults-Klasse ist einfach ein JAXB annotierte Klasse binden die JSON.

Das unmittelbare problem ist, das die Rotten Tomatoes-API ist die Rückgabe einer Antwort mit einem content-type von "text/javascript" für alle seine JSON-Antworten. Sie haben gezeigt, dass eine Zurückhaltung zu ändern, Ihre Dienste, obwohl dies eindeutig den falschen content-type zu setzen, wenn die Rückgabe JSON, so jetzt es ist was es ist.

Die exception die ich bekomme, wenn ich den Dienst aufzurufen ist:

Exception in thread "main"
javax.ws.rs.client.ResponseProcessingException: 
javax.ws.rs.ProcessingException: 
Unable to find a MessageBodyReader of 
content-type text/javascript;charset=ISO-8859-1 and type class MovieSearchResults

Die Frage ist also: gibt es eine einfache Möglichkeit zu erhalten/zu konfigurieren, die standard JAX-RS Client zu erkennen, die zurückgegeben "text/javascript" content-type als "application/json"?

Diese Fragen sind ähnlich, aber die akzeptierten Antworten angezeigt werden, verwenden Sie die JBoss-spezifischen API und ich würde es gerne spielen, nur über die JAX-RS Client API.

InformationsquelleAutor caprica | 2014-01-27
Schreibe einen Kommentar