2014-11-03 56 views
9

我最近將項目從Spring 3遷移到Spring 4.1.1。我也將傑克遜從版本1遷移到版本2.3.0。將Spring從3.2遷移到4.1.1:使用JSON序列化出現問題

現在,使用與無效響應控制器,當我遇到問題

@RequestMapping(value="toto", method="POST") 
public @ResponseBody void myController() { 
//content 
} 

在運行時,調用它時,我得到這種形式的例外:

Failed to evaluate serialization for type [void]: java.lang.IllegalStateException: Failed to instantiate standard serializer (of type com.fasterxml.jackson.databind.ser.std.NullSerializer): Class com.fasterxml.jackson.databind.ser.BasicSerializerFactory can not access a member of class com.fasterxml.jackson.databind.ser.std.NullSerializer with modifiers "private" 

我不知道是否有人遇到同樣的問題的種類或者有什麼錯誤的想法。

在此先感謝。

回答

14

如果你想使用你需要@ResponseStatus(value = HttpStatus.OK)註釋的方法返回void類型:

@RequestMapping(value = "/usage") 
@ResponseStatus(value = HttpStatus.OK) 
public void doSomething(HttpServletRequest request, ... 

詳見What to return if Spring MVC controller method doesn't return value?

+0

真好!那就是我錯過的。 – 2016-07-28 20:13:57

1

當Spring正在等待使用HttpMessageConverters進行序列化的返回值時,您的方法未返回任何內容。你還是有這樣的事情:

@RequestMapping(value="toto", method="POST") 
@ResponseBody 
public FooBar myController() { 
    // 
    return fooBar; 
} 
相關問題