Java - RestTemplate语法错误



我有这个控制器方法,它显然返回一个ResponseEntity:

@RequestMapping(method=RequestMethod.POST, value="sendEmail")
    public ResponseEntity sendPasswordResetEmail (@RequestParam("name")     final String name,
                                       @RequestParam("password") final String password,
                                       @RequestParam("email")    final String email)
{
            final boolean success = notificationService.sendPasswordResetEmail(name, password, email);
            return success ?
                    new ResponseEntity(HttpStatus.OK) : new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
}

我的问题是,当调用以下代码时,它不允许我将ResponseEntity.class设置为第三个参数,这没有意义,因为这是预期的返回类型:

ResponseEntity<String> auth = restTemplate.postForEntity(url, entity, ResponseEntity.class);

提示吗?

更新:

如何可能的代码编译和运行,我得到这个时,消费端点?

{
  "timestamp": 1444927133682,
  "status": 500,
  "error": "Internal Server Error",
  "exception": "java.lang.NoClassDefFoundError",
  "message": "org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: com/api/model/postmark/ResetPassword",
  "path": "/v1/api/notify/sendPasswordResetEmail"
}

您试图使用的postForEntity方法的签名是

public <T> ResponseEntity<T> postForEntity(URI url,
                                       Object request,
                                       Class<T> responseType)
                                throws RestClientException

换句话说,它总是返回一个ResponseEntity。您提供的参数是响应体的类型,它将告诉RestTemplate如何反序列化内容。

直接使用

ResponseEntity<String> auth = restTemplate.postForEntity(url, entity, String.class);

最新更新