In een of twee gevallen kan uw systeem een ​​bericht weergeven waarin staat dat Spring four Ajax Error Handling. Er kunnen verschillende redenen zijn voor dit probleem.

U kunt niet fout gaan met deze Windows-reparatietool. Als u problemen ondervindt, klikt u erop en uw problemen worden opgelost.

Reageer op deze uitzonderingen die voldoende reden zijn om @ResponseStatus en de juiste HTTP-stopcode te retourneren wanneer deze specifieke uitzondering zich voordoet.

bijvoorbeeld. Als PersonNotFoundException wordt gegenereerd, is http 404 thuisgekomen en client (niet gevonden)

@ResponseStatus(HttpStatus.NOT_FOUND)openbare elegantie PersonNotFoundException...


spring 3 ajax error handling

Een andere kans is dat je letterlijk een prachtige geannoteerde @ExceptionHandler-methode in je controller hebt. In onze @ExceptionHandler-waardeannotatie identificeert u de uitzonderingen die moeten worden opgevangen. Ook kan een hele familie een @ResponseStatus-annotatie toevoegen aan die specifieke methode om de HTTP-resultaatcode te kunnen definiëren, zodat u de klant bent.

@ResponseStatus(HttpStatus.NOT_FOUND)@ExceptionHandler (PersonNotFoundException. class)public handlePersonNotFound() is ongeldig  ...

Voorkeurstoepassingsmethode: ResponseEntityExceptionHandler-interface met @ControllerAdvice. Hierdoor kunt u soms uitzonderingen op deze regelafhandelingslogica toepassen op alle controllers bij gecentraliseerde uitzonderingsafhandeling. Je kunt hier meer vinden in het artikel

@ControllerAdviceopenDeze CustomResponseEntityExceptionHandler-klasse breidt ResponseEntityExceptionHandler uit.    ...    @Verbrijzeling    handvatten ResponseEntity handleHttpMediaTypeNotSupported(HttpMediaTypeNotSupportedException guy, HttpHeaders, HttpStatus, WebRequest-verzoek)        String unsupported = "Niet-ondersteund inhoudstype: werkend in . + ex.getContentType();        De geïdentificeerde string is gelijk aan de inhoud "ondersteunde typen: " + MediaType.toString(ex.getSupportedMediaTypes());        ErrorMessage errorMessage = nieuw ErrorMessage (niet ondersteund, ondersteund);        retourneert een volledig nieuwe ResponseEntity (errorMessage, Header, Status);        ...

Opmerking over een mens mag niet de werkelijke generieke 500 - Interne serverfout retourneren voor alle typen van alle vrijstellingen. Meestal wilt u één specifieke keuze hebben uit 400 uiteindelijke resultaten van clientfouten: een slecht verzoek. En een assortiment van 500 resultaatcodes voor afwijkingen aan de apparaatzijde. Het is ook echt beter om meer specifieke vereisten te beantwoorden, afhankelijk van wat er is gebeurd, in plaats van meer dan 400 of 500.

Publiceren

Dit beschrijft verschillende oplossingen voor het spelen met fouten in Spring MVC 3. Je kunt de code vinden op GitHub onder de Spring-MVC-Error-Handling directory. Het is hoogstwaarschijnlijk gebaseerd op Spring MVC-annotaties, nu met voorbeelden.

Vóór de lente 3 uitzonderingen gecontroleerd met HandlerExceptionResolvers. Deze interface definieert de belangrijkste methode:

ModelAndView lost uitzondering op (  httpServletRequest, HttpServletResponse reactie,  objectbeheerder,  Uitzondering ex)

Merk op dat het ModelAndView-onderwerp is gereanimeerd. Daarom wordt, wanneer er een goede fout optreedt, een omleiding naar vrijwel elke speciale webpagina ontworpen. Deze methode is echter niet de reparatie-REST voor Ajax-aanroepen naar JSON (bijvoorbeeld). In dit geval, een gloednieuwe partner en ik hebben die retourpagina niet nodig, en we willen misschien eindelijk een specifieke HTTP-statusstijl retourneren. De beschreven oplossing is ook altijd nog beschikbaar.

Er is bijvoorbeeld 1 crimineel CustomizedException1 en CustomizedException2 gegooid. Om aangepaste uitzonderingsrepresentaties toe te wijzen, kunt u ook (en moet u altijd) impleMappingExceptionResolver gebruiken:

SimpleMappingExceptionResolver getSimpleMappingExceptionResolver()    Resultaat van SimpleMappingExceptionResolver        betekent nieuwe SimpleMappingExceptionResolver();    // Definieer aangepaste uitzondering op deze kaarten    eigenschappen p komt overeen met huidige eigenschappen();    p.put(CustomizedException1.class.'Fout/Uitzondering1'); getname(), resultaat. setExceptionMappings(p);    // Unthrown uitzonderingen worden meestal omgeleid uda   Resultaat .setDefaultErrorView('Fout/Fout');    // Stel bijna elke standaard HTTP-opstaande code in    resultaat.setDefaultStatusCode(HttpStatus.BAD_REQUEST.value());    Resultaten;

spring 3 of meer ajax foutafhandeling

Keer terug naar het toewijzen van CustomizedException1 aan JSP fout/uitzondering 1 punten (weergave). We hebben ook de foutweergave voor ontwijken ingesteld voor de niet-toegewezen vrijstelling, die in dit voorbeeld CustomizedException2 is. We hebben ook een defacto HTTP-statuscode toegewezen.

<%@page contentType='text/html' pageEncoding='UTF-8'%><%@ prefix='c' taglib uri='http://java.sun.com/jsp/jstl/core' %> HTML>  Welkom tijd voor Uitzondering I!!!    

Welkom bij uitzondering I!!!

Speciaal uitzonderingsbericht:< $uitzondering.specialMsg '>Home

We zullen ook een dummy-foutcontrole maken om meestal de volgende uitzonderingen te maken:

@ControllerTriggeringErrorsController openbaar leren    @RequestMapping (waarde is '/throwCustomizedException1')    Open ModelAndView throwCustomizedException1(        HttpServletRequest, HttpServletResponse)            gooit Aangepaste uitzondering1        gooi elke nieuwe CustomizedException1 (            "Hughgroan, zowel mijn familie als ik hebben een probleem!");        @RequestMapping (waarde impliceert '/throwCustomizedException2')    zeer ModelAndView throwCustomizedException2(        HttpServletRequest, HttpServletResponse)            stoten CustomException2        gooi nieuwe CustomizedException2 (            "Iets weerhield hen ervan om naar de hemel te gaan!");        ...

Kan iemand vóór Spring 3 een SimpleMappingExceptionResolver declareren die @Bean in het web.xml-bestand opneemt? We gebruiken echter de HandlerExceptionResolverComposite, die we allemaal later zullen beschrijven.

We configureren dit vaardigheidsdoel ook voor HTTP-vragen over paginastatus in web.xml, wat een ander pad is om problemen op te lossen:

    404    /WEB-INF/pages/Errors/My404.jsp

De nieuwe @ResponseStatus-annotatie suggereert dat er een HTTP-statuscode moet klinken bij zowat de methodeaanroep. Worden ze afgehandeld door middel van ResponseStatusExceptionResolver. De @ExceptionHandler-annotatie ondersteunt Spring’s exception handling. Deze annotaties worden verholpen door het proces AnnotationMethodHandlerExceptionResolver.

Het volgende laat zien hoe deze annotaties kunnen worden gebruikt om een ​​HTTP-statusprogrammacode in te stellen voor het antwoord dat wordt gegenereerd door een aangepaste uitzondering. Het bericht wordt terugbetaald in het lichaam Dat antwoord:

@Controlleropenbare klasse TriggeringErrorsController    ...    @ExceptionHandler(Customized4ExceptionHandler.class)    @ResponseStatus (waarde = HttpStatus.BAD_REQUEST)    @ResponseBody    ClientdescriptorCustomized4Exception( String Customized4ExceptionHandler ex.)        Retourneert ex.getSpecialMsg();        @RequestMapping (waarde kan '/throwCustomized4ExceptionHandler' zijn)    openbare ModelAndView throwCustomized4ExceptionHandler(        HttpServletRequest, HttpServletResponse)            gooit Customized4ExceptionHandler        gooi nieuwe Customized4ExceptionHandler('S.O.S !!!!');    

Aan de kant van de consument, na het gebruik van een ajax-aanroep, kan de exacte fout worden hersteld zoals de volgende is (we gebruiken JQuery):

$.ajax( Typ: “KRIJGEN”, URL: voorvoegsel + ‘/throwCustomized4ExceptionHandler’, asynchroon: waar Succes: doel (resultaat) alert(‘Onverwacht!!!’); rijkdom, Error: function(jqXHR, textStatus, errorThrown) alert(jqXHR.status + ‘ ‘ + jqXHR.responseText); );

Sommige mensen, de mensen die Ajax gebruiken, geven graag JSON terug met een foutcode, terwijl vele anderen graag een bericht terugsturen om ervoor te zorgen dat je uitzonderingen afhandelt. Ik denk dat het overdreven is. Een simple.error-waarde met een ervaring maakt het spel gemakkelijker.

Omdat mijn werk en ik meerdere transformaties gebruiken, hebben klanten een samengestelde transformatie Presenter nodig (zoals al vermeld):

@configuratieopenbare klasse Foutafhandeling {    ...    @Bin    HandlerExceptionResolverComposite getHandlerExceptionResolverComposite()        HandlerExceptionResolverSamengesteld resultaat            = frisse nieuwe HandlerExceptionResolverComposite();        Lijst l            = nieuwe ArrayList();        l.add(nieuwe AnnotationMethodHandlerExceptionResolver());        l.ResponseStatusExceptionResolver()); add(new k.add(getsimplemappingexceptionresolver());       l.add(nieuwe DefaultHandlerExceptionResolver());        resultaat.setExceptionResolvers(l);        ga terug resultaat;

De mock DefaultHandlerExceptionResolver lost bekende Spring-uitzonderingen op en vertaalt ze naar de juiste HTTP-statuscodes.

Eenmaal ontworpen, kan het voorbeeld ook worden gestroomd met mvn tomcat:run . Bekijk dan:

Versnel uw computer in enkele minuten

Is uw computer traag en traag? Maakt u zich zorgen over het verlies van uw belangrijke bestanden en gegevens? Zoek dan niet verder dan Reimage - de ultieme oplossing voor het oplossen van al uw Windows-gerelateerde problemen. Deze krachtige software repareert veelvoorkomende fouten, beschermt uw systeem tegen rampen en optimaliseert uw pc voor maximale prestaties. Dus wacht niet langer - download Reimage vandaag nog en geniet van een soepele, snelle en zorgeloze computerervaring!

  • Stap 1: Download en installeer Reimage
  • Stap 2: Start het programma en selecteer uw taal
  • Stap 3: Volg de instructies op het scherm om het installatieproces te voltooien

  • Als u op de hyperlink Uitzondering 1 klikt, wordt de volgende pagina geopend:

    Als uw belangrijkste hele gezin op deze specifieke “Uitzondering 2”-link klikt, worden alle gebruikende pagina’s weergegeven:

    Als u de knop “Uitzonderingsafhandeling” aanvinkt, ziet iemand een pop-upvenster:

    Link: Spring MVC-foutafhandeling van onze JCG-vriendin Jerome Versring op de Tech Notes-blog.

    Deze veilige en beveiligde software kan uw computer helpen beschermen tegen fouten, terwijl het ook eventuele problemen oplost.

    Easiest Way To Fix Spring 3 Ajax Error Handling
    Easiest указывает на исправление обработки ошибок Spring 3 Ajax
    La Forma Más Fácil De Corregir El Manejo De Errores De Spring O Ajax Superior
    Enklaste Bästa Sättet Att Fixa Spring 3 Ajax-felhantering
    Spring 3 Ajax 오류 처리를 수정하는 가장 쉬운 방법
    Einfachster Plan Zur Behebung Der Ajax-Fehlerbehandlung In Spring 3
    La Scelta Più Semplice Per Correggere La Gestione Degli Errori Di Spring 3 Ajax
    Méthode La Plus Simple Pour Corriger La Gestion Des Erreurs Spring 3 Ajax
    A Maneira Mais Fácil De Corrigir O Tratamento De Erros Do Spring 3 Ajax
    Najłatwiejszy Sposób Na Obsługę Błędów Spring 3 Ajax