Presumo che si stia parlando di consumo di un corpo di messaggio JSON inviato con la richiesta.
In caso affermativo, si prega di notare che, mentre non proibito a titolo definitivo, non v'è un consenso generale che le richieste GET dovrebbero non hanno corpi di richiesta. Vedi la domanda "HTTP GET with request body" per spiegazioni sul perché.
Ne parlo solo perché l'esempio mostra una richiesta GET. Se stai facendo un POST o PUT, continua a leggere, ma se stai davvero facendo una richiesta GET nel tuo progetto, ti consiglio di seguire invece kondu's solution.
Detto questo, per consumare un corpo del messaggio JSON o XML, includono una (non annotate) parametro di metodo che di per sé un fagiolo JAXB che rappresenta il messaggio è.
Quindi, se il vostro corpo del messaggio simile a questo:
{"hello":"world","foo":"bar","count":123}
Quindi si creerà una corrispondente classe che assomiglia a questo:
@XmlRootElement
public class RequestBody {
@XmlElement String hello;
@XmlElement String foo;
@XmlElement Integer count;
}
e il metodo di servizio sarebbe simile a questa:
@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);
}
Quale output:
world
bar
123
Per ulteriori informazioni su come utilizzare i diversi tipi di dati HTTP utilizzando JAXB, mi consiglia di controllare la domanda "How to access parameters in a RESTful POST method", che ha alcuni fantastici informazioni.
Grazie Mi ha aiutato a risolvere l'errore :) –