2016-06-30 7 views
0

I @BeanParam Trikot Annotation die folgende Art und Weise zu verwenden, versuchen:@BeanParam Ergebnisse der Verwendung von Jersey in einem 415 Fehler

Das ist meine Bohne:

public class BeanParamModel { 

@QueryParam(value = "param1") 
private String param1; 

public BeanParamModel(@QueryParam("param1") String param1) { 
    this.param1 = param1; 
} 

public String getParam1() { 
    return param1; 
} 

public void setParam1(String param1) { 
    this.param1 = param1; 
}} 

Und das ist die Ressource Methode, die benötigt verwenden sie es:

@Consumes("*/*") 
@Path("mypath") 
@GET 
public Response getUpgradeStatus(@QueryParam("param1") String param1, @BeanParam BeanParamModel user) { 
    return Response.ok().build(); 
} 

nun einen Komponententest ich möchte dies testen verwendet, die eine hTTP-Anforderung zu einem Testserver mit der folgenden uRL sendet:

GET http://path_to_resource?param1=1

Mein Problem ist, dass die Ergebnisse in einem 415-Antwort mit Jersey Druck Diese Nachricht:

Ein Nachrichtentext Leser für Java-Klasse BeanParamModel und Klasse Java-Typ BeanParamModel und MIME-Medientyp application/Oktettstream wurde nicht gefunden. Die registrierten Nachrichtentext Leser kompatibel mit den MIME-Medientypen sind: ...

Ich habe versucht, das Hinzufügen einen „application/x-www-form-urlencoded“ Header aber die Nachricht wiederholt für diesen Header-Typen als Gut. Ich habe auch versucht, eine Anwendung/JSON-Header verwenden, dies resultiert in EOF-Expection von der Jackson-Mapper aufgrund des Endes der Eingabe.

Kann mir jemand sagen, was ich nicht richtig mache? Aus der Jersey-Dokumentation von @BeanParam scheint das ziemlich einfach zu sein.

+0

Warum konsumieren Sie '*/*' ?. Verstehst du die Bedeutung davon für deine Bewerbung? –

+0

Der obige Code ist eine vereinfachte Version einer Ressource, um das Problem zu demonstrieren, das ich habe, nicht die tatsächliche Anwendung. Bezüglich der Verbrauchsannotation: Ich habe versucht, Anwendungstypen zu verwenden, die mit dem Header übereinstimmen, den ich sende, aber das ohne Wirkung, immer noch die gleichen Fehler erhaltend. – Anat

Antwort

0

Mit einem @ GET sollten Sie @Consumes nicht haben.