Ho creato un semplice servizio REST con due risorse. La prima risorsa funziona alla grande e restituisce semplicemente MediaType.TEXT_PLAIN.Glassfish JAX-RS Mapping JSON Esempio semplice Errore interno del server 500 Nessun registro prodotto
Per la seconda risorsa ho voluto provare la mappatura POJO a Java e seguirono questo esempio:
con il mio testbean definita come:
@XmlRootElement
public class Company {
public String name;
public String symbol;
public String country;
public Company(String name, String symbol,
String country) {
this.name = name;
this.symbol = symbol;
this.country = country;
}
public String getName() {
return name;
}
public String getSymbol() {
return symbol;
}
public String getCountry() {
return country;
}
}
La risorsa è banale pure:
@Path("company/{name}")
public class CompanyResource {
private Map<String, Company> companies;
public CompanyResource() {
companies = new LinkedHashMap<String, Company>();
companies.put("Apple", new Company("Apple Inc.", "AAPL", "USA"));
companies.put("Microsoft", new Company("Microsoft Corp.", "MSFT", "USA"));
companies.put("Honda", new Company("Honda Motor Co Ltd", "HMC", "Japan"));
companies.put("Random", new Company("Random Inc.", "RND", "Undefined"));
}
@GET
@Produces(MediaType.APPLICATION_JSON)
public Company getCompany(@PathParam("name") String name) {
Company cmp = companies.get(name);
if (cmp == null) {
return companies.get("Random");
}
return cmp;
}
}
Ho eseguito il debug di una richiesta e arri ve alla dichiarazione di ritorno senza problemi. Da qui, tuttavia, penso che venga lanciata una JAXBException, ma non sono in grado di visualizzare i dettagli e nulla viene visualizzato in nessun registro. Tutto ciò che accade è che il browser visualizza un messaggio "Errore interno del server 500".
Sotto configurazione di monitoraggio ho disperatamente impostato tutto al livello HIGH. Ancora nulla sembra da nessuna parte.
Le uniche domande simili che ho trovato erano jax-rs 2.0 and Glassfish 4 unable to @consume JSON into Pojo e JAX RS Jersey + JSON --> HTTP 500 Internal Server Error ma non sembravano del tutto correlate.
Per il cliente sto semplicemente utilizzando Google Chrome con l'app "Advanced REST Client".
Qualsiasi aiuto sarebbe molto apprezzato.
non posso credere che fosse così facile ... Grazie, funziona alla grande ora! – UmaN
@UmaN - Il team di Jersey è anche a conoscenza del problema di registrazione e sta esaminando il problema. –
Grazie grazie grazie grazie !! – jahroy