Postagem HTTP com formulário de tipo de conteúdo de solicitação que não funciona no Spring MVC 3

fragmento de código:

@RequestMapping(method = RequestMethod.POST)//,  headers = "content-type=application/x-www-form-urlencoded")
public ModelAndView create(@RequestBody UserAccountBean account) {
    try{
        accounts.put(account.assignId(), account);
    }catch(RuntimeException ex)
    {
        return new ModelAndView("account/registerError");
    }
    return new ModelAndView("account/userVerification");
}

Depois de receber a solicitação, o que recebi é o código de status Http 415: O servidor recusou essa solicitação porque a entidade da solicitação está em um formato não suportado pelo recurso solicitado para o método solicitado ().

Se eu mudar o código para isso:

fragmento de código:

@RequestMapping(method = RequestMethod.POST,headers = "content-type=application/x-www-form-urlencoded")
public ModelAndView create(@RequestBody UserAccountBean account) {
    try{
        accounts.put(account.assignId(), account);
    }catch(RuntimeException ex)
    {
        return new ModelAndView("account/registerError");
    }
    return new ModelAndView("account/userVerification");
}

Vou receber o método 405 não permitido. O engraçado é que no cabeçalho de resposta de permissão, ele lista GET e POST como métodos permitidos.

Eu tenho uma classe que faz o mapeamento JOSN:

@Component
public class JacksonConversionServiceConfigurer implements BeanPostProcessor {

private final ConversionService conversionService;

@Autowired
public JacksonConversionServiceConfigurer(ConversionService conversionService) {
    this.conversionService = conversionService;
}

public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
    return bean;
}

public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    if (bean instanceof AnnotationMethodHandlerAdapter) {
        AnnotationMethodHandlerAdapter adapter = (AnnotationMethodHandlerAdapter) bean;
        HttpMessageConverter<?>[] converters = adapter.getMessageConverters();
        for (HttpMessageConverter<?> converter : converters) {
            if (converter instanceof MappingJacksonHttpMessageConverter) {
                MappingJacksonHttpMessageConverter jsonConverter = (MappingJacksonHttpMessageConverter) converter;
                jsonConverter.setObjectMapper(new ConversionServiceAwareObjectMapper(this.conversionService));
            }               
        }
    }
    return bean;
}

}

Copiado dos exemplos do Spring. funciona muito bem com o tipo de conteúdo JSON.

Uma pergunta mais geral é como fazer com que os manipuladores de solicitação do Spring Mvc funcionem com diferentes tipos de conteúdo de solicitação. Qualquer conselho seria muito apreciado.

questionAnswers(7)

yourAnswerToTheQuestion