2016-10-20 2 views
0

In meinem Frühjahrsprojekt erhalte ich Benachrichtigungen von einem Benachrichtigungsdienst, nachdem ich eine Benachrichtigung erhalten habe, wie ich die Benachrichtigungsdaten in meinem Browser anzeigen kann. Hier ist mein Code.So zeigen Sie Daten in einem Browser nach dem Empfang von Benachrichtigungsdaten an

@RequestMapping(value = "/notify/userregister", method = RequestMethod.POST) 
    public ResponseEntity<String> registerNotification(@RequestBody @Valid RegistrationInfo registrationInfo) throws IOException { 

     if(registrationInfo != null && registrationInfo.getregistrationInfo()!= null && registrationInfo.getregistrationInfo.size() > 0){ 
       for(int i=0;i<registrationInfo.getregistrationInfo.size();i++){ 
        logger.info("registration notification data:"+registrationInfo.getregistrationInfo().get(i).getUserAccessId()+registrationInfo.getregistrationInfo().get(i).getRegistrationTime)); 
       }  

       return new ResponseEntity<String>(HttpStatus.OK); 
     } 
     else{ 
      return new ResponseEntity<String>(HttpStatus.NO_CONTENT); 
     } 
    } 

Wenn mein Server läuft, sendet der Registrierungsdienst Benachrichtigungsdaten. Ich kann die Daten in der Protokolldatei sehen und den Registrierungsdienst mit 200 Code bestätigen. Ich möchte die Benachrichtigungsdaten (Ex: registrationInfo.getregistrationInfo(). Get (i) .getUserAccessId()) in meinem Browser anzeigen. Derzeit wird "Whitelabel Error Page" angezeigt. Diese Anwendung hat keine explizite Zuordnung für/error, daher sehen Sie dies als Fallback. Es gab einen unerwarteten Fehler .... ". Wie kann ich diese Fehlermeldung in meinem Browser loswerden?

+0

Sie dies, indem eine Errorcontroller in Ihrer Anwendung lösen können. Sie können den Fehlercontroller eine Ansicht zurückgeben, die Sie benötigen –

+0

können Sie mir einen beliebigen Beispielcode als Referenz zur Verfügung stellen? – madhu

+0

Ich benutze Springboot. jeder Beispielcode wäre eine große Hilfe. – madhu

Antwort

0

https://gist.github.com/jonikarppinen/662c38fb57a23de61c8b

package com.company.project.controllers; 
import com.company.project.model.api.ErrorJson; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.beans.factory.annotation.Value; 
import org.springframework.boot.autoconfigure.web.ErrorAttributes; 
import org.springframework.boot.autoconfigure.web.ErrorController; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
import org.springframework.web.context.request.RequestAttributes; 
import org.springframework.web.context.request.ServletRequestAttributes; 

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import java.util.Map; 

/** 
* Based on the helpful answer at http://stackoverflow.com/q/25356781/56285, 
* with error details in response body added. 
* 
* @author Joni Karppinen 
* @since 20.2.2015 
*/ 
@RestController 
public class CustomErrorController implements ErrorController { 

private static final String PATH = "/error"; 

@Value("${debug}") 
private boolean debug; 

@Autowired 
private ErrorAttributes errorAttributes; 

@RequestMapping(value = PATH) 
ErrorJson error(HttpServletRequest request, HttpServletResponse response) { 
    // Appropriate HTTP response code (e.g. 404 or 500) is automatically set by Spring. 
    // Here we just define response body. 
    return new ErrorJson(response.getStatus(), getErrorAttributes(request, debug)); 
} 

@Override 
public String getErrorPath() { 
    return PATH; 
} 

private Map<String, Object> getErrorAttributes(HttpServletRequest request, boolean includeStackTrace) { 
    RequestAttributes requestAttributes = new ServletRequestAttributes(request); 
    return errorAttributes.getErrorAttributes(requestAttributes, includeStackTrace); 
} 

}

+0

Vielen Dank. – madhu

+0

Sie benötigen eine andere Klasse zur Definition der Fehlercodes. –

Verwandte Themen