Bonjour,
J'utilise des services REST pour faire communiquer une app swing et un back end java.
Je souhaite renvoyer une exception avec un message particulier à mon client swing, en faisant un extends de la classe WebApplicationException (classe que j'appelle AlreadyExistsException) et en envoyant cette nouvelle exception au client.
Résulat, je reçois bien une exception côté client, mais c'est une WebApplicationException et pas une AlreadyExistsException avec mon message.
voici le code de l'exception
la déclaration de mon service, qui renvoie l'exception:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Response; public class AlreadyExistsException extends WebApplicationException { public AlreadyExistsException(String message) { super(Response.status(Response.Status.CONFLICT).entity("Driver exists").build()); } }
L'implémentation de mon service
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @POST @Path("/") @Produces("application/xml;charset=utf-8;version=1") @Consumes("application/xml;charset=utf-8;version=1") Driver create(Driver drv) throws AlreadyExistsException;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @Override @Transactional(propagation=Propagation.REQUIRED, rollbackFor={Exception.class}) public Driver create(Driver drv) throws AlreadyExistsException { Driver drv= driverDAO.getByCode(drv.getCode()); if(drv != null) { throw new AlreadyExistsException(); } return driverDAO.create(drv); }
Une idée de ce qui ne va pas ?
Partager