2010-05-13 8 views
11

tengo este pedazo de código:?Asignación de solicitudes reparador ajax a la primavera

@RequestMapping(value = "/test.json", method = RequestMethod.GET) 
@ResponseStatus(HttpStatus.OK) 
public @ResponseBody Object[] generateFile(@RequestParam String tipo) { 
    Object[] variaveis = Variavel.getListVariavelByTipo(tipo); 
    return variaveis; 
} 

Por lo que sé que debería tomar una petición a test.json tipo = H y devolver la representación JSON de variável [] Sin embargo cuando hago dicha solicitud consigo:

de estado HTTP 406 -

informe de estado de tipo

mensaje

recurso

DescriptionThe identificado por esta solicitud sólo es capaz de generar respuestas con características no aceptable de acuerdo con la solicitud "acepta" cabeceras()

Mediante el uso de la siguiente función puedo conseguir el json esperado:

@RequestMapping(value = "/teste.json") 
public void testeJson(Model model, @RequestParam String tipo) { 
    model.addAttribute("data", Variavel.getListVariavelByTipo("H")); 
} 

¿Qué estoy haciendo mal?

+0

este tema se trata con más detalle en [Solicitud de Spring JSON obteniendo 406 (no es aceptable)] (http://stackoverflow.com/questions/7462202/spring-json-request-getting-406-not-acceptable) – kdgregory

Respuesta

12

@RequestBody/@ResponseBody anotaciones no utilizan los resolutores de vista normal, usan su propio HttpMessageConverter s. Para utilizar estas anotaciones, debe configurar estos convertidores en AnnotationMethodHandlerAdapter, como se describe en the reference (probablemente necesite MappingJacksonHttpMessageConverter).

+0

Hmm , ¿en qué situación debería considerar este enfoque? – Diones

Cuestiones relacionadas