Sono nuovo in questo, cercando di ottenere la lettura di alcuni documenti ma non funziona, per favore abbiate pazienza.Maglia JAX-RS ExceptionMappers Eccezione definita dall'utente
ho creato un UserNotFoundMapper
utilizzando ExceptionMappers
come questo:
public class UserNotFoundMapper implements ExceptionMapper<UserNotFoundException> {
@Override
public Response toResponse(UserNotFoundException ex) {
return Response.status(404).entity(ex.getMessage()).type("text/plain").build();
}
}
Questo a mio servizio:
@GET
@Path("/user")
public Response getUser(@QueryParam("id") String id) throws UserNotFoundException{
//Some user validation code with DB hit, if not found then
throw new UserNotFoundException();
}
Il UserNotFoundException
è un User-Defined
eccezione.
ho provato questo:
public class UserNotFoundException extends Exception {
//SOME block of code
}
Ma quando invoco il servizio, il UserDefinedExceptionMapper
non è sempre invocato. Sembra che manchi qualcosa nel UserDefinedException
. Come definire questa eccezione allora?
Per favore fatemi sapere come definire il UserNotFoundException
.
Grazie per la risposta. Ho bisogno di sapere alcune cose relative a questo: dove si trova la differenza tra l'utilizzo di WebApplicationException e l'utilizzo di ExceptionMapper? Non sono sicuro di quali circostanze debbano essere usate :(Potete fornire i vostri input su questo? – WhoAmI
@WhoAmI - le eccezioni delle applicazioni Web vengono automaticamente mappate dal provider JAX-RS. Quindi, al contrario di usare i mapping delle eccezioni, ad esempio , è possibile estendere 'WebApplicationException' e sovrascrivere il metodo' getResponse'.Alcune persone preferiscono farlo per tutte le eccezioni che definiscono esclusivamente per la loro implementazione JAX-RS. I mappatori sono tuttavia utili per la mappatura di eccezioni che non si estendono da WebApplicationException (ad esempio tutte le eccezioni Java standard, eccezioni da librerie di terze parti ecc. Ecc.). – Perception
Questa affermazione: 'Le eccezioni delle applicazioni Web sono automaticamente mappate dal fornitore JAX-RS'. L'ho visto in molti documenti che sto leggendo in giro. Ma non è in grado di capire cosa significhi realmente in termini semplici e qual è l'importanza/utilità di esso :(Puoi spiegare per favore? – WhoAmI