Ich gehe davon aus, dass Sie mit der Bitte geschickt sprechen einen JSON-Nachrichtentext zu verbrauchen.
Wenn ja, bitte beachten Sie, dass, obwohl nicht ganz verboten, gibt es eine allgemeine Übereinstimmung, dass GET-Anfragen sollten nicht Anfrage haben Körper. Siehe die "HTTP GET with request body" Frage für Erklärungen warum.
Ich erwähne dies nur, weil Ihr Beispiel eine GET-Anfrage zeigt. Wenn Sie einen POST oder PUT machen, lesen Sie weiter, aber wenn Sie wirklich eine GET-Anfrage in Ihrem Projekt machen, empfehle ich stattdessen, dass Sie kondu's solution folgen.
dies gesagt wurde, einen JSON oder XML-Nachrichtentext zu verbrauchen, gehören (unkommentierten) -Methode Parameter, der selbst ein JAXB bean, die die Nachricht ist.
Also, wenn Ihr Nachrichtentext wie folgt aussieht:
{"hello":"world","foo":"bar","count":123}
Dann erhalten Sie eine entsprechende Klasse erstellen, die wie folgt aussieht:
@XmlRootElement
public class RequestBody {
@XmlElement String hello;
@XmlElement String foo;
@XmlElement Integer count;
}
Und Ihre Service-Methode würde wie folgt aussehen:
@POST
@Path("/GetHrMsg/json_data")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public void gethrmessage(RequestBody requestBody) {
System.out.println(requestBody.hello);
System.out.println(requestBody.foo);
System.out.println(requestBody.count);
}
Welche Ausgabe würde:
world
bar
123
Weitere Informationen über die verschiedenen Arten von HTTP-Daten mit JAXB verwenden, würde ich empfehlen, die Frage check out „How to access parameters in a RESTful POST method“, die einige fantastische Informationen hat.
Dank es mir geholfen, den Fehler zu beheben :) –