Spring Error Response автоматически преобразуется в Html из JSON - PullRequest
0 голосов
/ 30 мая 2018

Я правильно получаю ответ об ошибке, когда запускаю проект в моем конце.

{
 "timestamp": "2018-05-30T10:16:00.065+0000",
 "status": 500,
 "error": "Internal Server Error",
 "message": "No login found for username :string",
 "path": "/gatepass/api/v1/logins/login"
 }

Но при развертывании на сервере он автоматически конвертируется в HTML.Как это исправить?

<!doctype html>
<html lang="en">
   <head>
      <title>HTTP Status 500 – Internal Server Error</title>
      <style type="text/css">h1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} h2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} h3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} body {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} b {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} p {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;} a {color:black;} a.name {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style>
   </head>
   <body>
      <h1>HTTP Status 500 – Internal Server Error</h1>
      <hr class="line" />
      <p><b>Type</b> Status Report</p>
      <p><b>Message</b> No login found for username :string</p>
      <p><b>Description</b> The server encountered an unexpected condition that prevented it from fulfilling the request.</p>
      <hr class="line" />
      <h3>Apache Tomcat/8.5.27</h3>
   </body>
</html>

Ответы [ 3 ]

0 голосов
/ 31 мая 2018

я думаю, что это может помочь,

@RequestMapping(value = "/userAuthenticationDemo",method = RequestMethod.GET , produces="application/json")
  public ResponseEntity<?> userAuthenticationDemo(@RequestParam("username") String username, @RequestParam("password") String password, ) {

          System.out.println("Authentication hit");

              JSONObject json = new JSONObject();

              json.put("username", username);
              json.put("password", password);

JSONObject authRespObj = gstcService.userAuthenticationForPostalAppChecking(json);

              if(authRespObj != null){
                  authRespObj.put("isErrorFlag", false);
                  return new ResponseEntity<>(authRespObj, new HttpHeaders(), HttpStatus.OK);
              }else{

                  throw new UserException("_USER_AUTHENTICATION_FAILED");
              }
}

здесь для ответа на данные JSON нам нужно использовать produces="application/json".и лучше использовать Response Entity вместо @ResponseBody.примечание является особенным, но объект ответа может нести ответ с кодами статуса Http.

, если это помогает, пожалуйста, рекламируйте.

0 голосов
/ 07 августа 2018

Это исправлено созданием страницы ошибки по умолчанию, так что tomcat не направляет на страницу HTML ошибки

0 голосов
/ 30 мая 2018

Похоже, ваш сервер (Tomcat) или ваше веб-приложение имеют страницу ошибок по умолчанию 500, которая применяется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...