Quiero regresar con mi controlador spring a JSONARRAY, pero al ejecutar recibo este error:
java.lang.IllegalArgumentException: No se encontró ningún convertidor para el valor de retorno de tipo: clase org.codehaus.jettison.json.JSONArray
este es mi codigo:
@RequestMapping(value = "/generate", method = RequestMethod.GET) @ResponseBody public JSONArray generate() throws NoSuchFieldException, CloneNotSupportedException{ return facturationSvc.facturer(); }NB: El método "facturer()" del servicio "facturationSvc", devuelve un JSON ARRAY
Debe devolver una lista Java, no un JSONArray. Spring usa Jackson, y el propósito de jackson es convertir un objeto Java a/desde elementos base como JsonArray, y luego a Json String
No necesita administrar json directamente, Spring lo hace todo por usted, por lo que la solución aquí es cambiar sus tipos de devolución (del controlador y el servicio) y administrar solo objetos Java
@RequestMapping(value = "/generate", method = RequestMethod.GET) @ResponseBody public List<YourFacturerClass> generate() { return facturationSvc.facturer(); }deberías devolver una cadena, no JSONArray,
String generate() throws NoSuchFieldException, CloneNotSupportedException{ return facturationSvc.facturer().toString(); }