Невозможно определить аргументы типа для ResponseEntity <> - PullRequest
0 голосов
/ 26 июня 2019

Я хочу реализовать конечную точку Spring, в которой я могу вернуть объект XML NotificationEchoResponse и код состояния http.Я пробовал это:

@PostMapping(value = "/v1/notification", produces = "application/xml")
  public ResponseEntity<?> handleNotifications(@RequestParam MultiValueMap<String, Object> keyValuePairs) {

   if (!tnx_sirnature.equals(signature)) 
     {
         return new ResponseEntity<>("Please contact technical support!", HttpStatus.INTERNAL_SERVER_ERROR);
     }         

    return new ResponseEntity<>(new NotificationEchoResponse(unique_id), HttpStatus.OK);
  }

Но я получаю ошибку: Cannot infer type arguments for ResponseEntity<> в этой строке: return new ResponseEntity<>("Please contact technical support!", HttpStatus.INTERNAL_SERVER_ERROR); Знаете ли вы, как я могу решить эту проблему?

1 Ответ

1 голос
/ 28 июня 2019

Вы можете использовать

    ResponseEntity<Object> 

вот так

ИЛИ

Вы можете создать свой собственный класс, такой как ResponseData, и в этом классе поместить поле, подобное paylod

  public class ResponseData {
      private Object payload;
   } 

и используйте вот так ResponseEntity и установите это значение.

Теперь ваш контроллер будет выглядеть так

    @PostMapping(value = "/v1/notification", produces = "application/xml")
    public ResponseEntity<ResponseData> handleNotifications(@RequestParam 
    MultiValueMap<String, Object> keyValuePairs) {

   if (!tnx_sirnature.equals(signature)) 
   {
     return new ResponseEntity<ResponseData>(new ResponseData("Please contact to technical support"), 
    HttpStatus.INTERNAL_SERVER_ERROR);
   }         

   return new ResponseEntity<ResponseData>(new ResponseData(new NotificationEchoResponse(unique_id)), 
   HttpStatus.OK);
   }

Вы также можете заменить данные ответа на Object,тогда

  @PostMapping(value = "/v1/notification", produces = "application/xml")
    public ResponseEntity<Object> handleNotifications(@RequestParam 
    MultiValueMap<String, Object> keyValuePairs) {

   if (!tnx_sirnature.equals(signature)) 
   {
     return new ResponseEntity<Object>("Please contact to technical support", 
    HttpStatus.INTERNAL_SERVER_ERROR);
   }         

   return new ResponseEntity<Object>(new NotificationEchoResponse(unique_id), 
   HttpStatus.OK);
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...