Ich benutze Jackson ObjectMapper, um meine Antwort zu lesen. Auch bin ich mit Frühling ResponseErrorHandler diese Antwort zu handhaben:Java - Jackson Anmerkungen, um keinen geeigneten Konstruktor zu behandeln
@Override
public void handleError(final ClientHttpResponse response) throws IOException {
objectMapper.readValue(response.getBody(), ServiceError.class);
}
Ich weiß, dass Problem kann durch Hinzufügen Standardkonstruktors dadurch gelöst, aber ich kann das nicht tun. Ich kann die ServiceError-Klasse überhaupt nicht ändern.
Fehler bekam ist diese:
No suitable constructor found for type ... can not instantiate fromJSON object(need to add/enable type information?)
Gibt es irgendwelche Jackson Anmerkungen solche Ausgabe zu unterstützen?
Haben Sie ein Beispiel, wie es aussehen sollte? – Laurynas
Ich dachte nicht, dass es möglich ist, @JsonCreator zu verwenden, ohne die Klasse selbst zu ändern, und die Frage besagt, dass ServiceError nicht geändert werden kann? –
@EssexBoy Sie können Mix-In-Anmerkungen verwenden, auch wenn Sie die Klasse selbst nicht ändern können; Siehe zB http://www.baeldung.com/jackson-annotations (Abschnitt 8) oder http://stackoverflow.com/questions/28857897/how-do-correctly-use-jackson-mixin-annotation-to- Instanziieren Sie eine Drittanbieter-Klasse (in Ihrem Fall wird es funktionieren, da der Typ keiner der JDK-Typen ist) – StaxMan