我有控制器:
@RestController
@RequestMapping(value = "/v1/mail", consumes = {APPLICATION_JSON_VALUE})
@ResponseStatus(OK)
public class MailController {
private CoreOutRestAdapter coreAdapter;
@Autowired
public MailController(CoreOutRestAdapter coreAdapter) {
this.coreAdapter = coreAdapter;
}
@RequestMapping(method = POST)
public void sendMail(@RequestBody @Validated Mail mail) {
coreAdapter.sendMail(mail);
}
}
和jackson-databind 2.3.2在classpath中。但是如果我使用Content-Type:application / json发送POST请求,则返回的响应包含415状态(Unsupported Media Type)。我不明白为什么控制器忽略@RequestMapping注释中的“消耗”属性。我怎样才能解决这个问题?此外,您可以在github https://github.com/f1xmAn/scail
找到项目的其余部分答案 0 :(得分:0)
以下是我的应用程序代码中的工作示例。
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping("/abc")
public class ABC {
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public String getRequest(@RequestBody XYZ xyz) {
return "success";
}
答案 1 :(得分:0)
我忘了用@EnableWebMvc注释配置。注释后控制器工作正常。