2016-06-03 10 views
0

Ich habe super spezifische Logik der Zuordnung von Inhalt des Körpers zu Bean. Ich habe versucht, ParamConverterProvider zu verwenden, aber es funktioniert nur für @PathParam, @QueryParam und etc.jersey: wie man Mapping-Körper zu Bohne anpassen?

Gibt es einfache Möglichkeit, Mapping Körper zu bean der Anpassung?

Antwort

0

In Jersey verwendet es die bereitgestellten Reader-Typen, um vom Anfragetext in beliebige Typen zu konvertieren. Sie möchten MessageBodyReader mit Ihrer Bean implementieren.

Achten Sie darauf, Ihren Reader mit @Provided zu versehen und sicherzustellen, dass er explizit in Ihrer ApplicationConfig oder in einem Paket registriert ist, das automatisch gescannt wird.

Sie sollen nicht Ihre Methode mit Anmerkungen versehen, die in der Bohne nimmt:

@Get 
... 
public Response doGet(MyBeanType bean) { 
    ... 
} 
0

andere (schmutzig!) Ansatz könnte sein, ein Objekt zu übernehmen und das Objekt in Ihre benötigen Pojo-Struktur zu umwandeln. Dies hängt natürlich von der Struktur ab, die übergeben wird. Debuggen Sie einfach, um herauszufinden, wie Ihr Objekt aussieht.

@Get 
public Response doSome(Object o){ 
    if (o instanceof List) { .... } 
} 

Wie auch immer, dies sollte besser mit einem MessageBodyReader wie John H vorgeschlagen werden!