Web service REST:Récupéré le message d'une exception contrôlée en provenance d'un web service Rest
Bonjour
Voici à quoi ressemble, mon web service
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
@EJB
private ContribuableLocal cl;
@POST
@Path("/nouveau/contribuable")
@Produces("application/json")
@Consumes("application/x-www-form-urlencoded")
public Contribuable nouveauContribuable(
@FormParam("nom") String nom,
@FormParam("prenom") String prenom,
@FormParam("dateNaissance") String dateN{
try{
DateFormat df = new SimpleDateFormat("dd MMM yyyy HH:mm:ss", Locale.ENGLISH);
Date dateNaissance = df.parse(dateN);
Contribuable c = cf.create(nom, prenom, dateNaissance);
return c;
}catch(Exception ex){
throw new WebApplicationException(Response.status(500).entity(ex.getMessage()).build());
}
} |
Mon but est de pouvoir afficher sur les boites de dialogues android les messages d'erreurs en provenance de l'EJB (plus précis, car bien contrôlé pour la plus part)!
Voici ce que je fais pour android
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
private Handler communication = new Handler() {
@Override
public void handleMessage(Message msg) {
new Information(activity, msg.obj.toString());
}
};
Message msg;
HttpResponse reponse = AccesWebServie.post(path, postParameters);
if(reponse.getStatusLine().getStatusCode() == 200){
msg = communication.obtainMessage(ACCESS_WEB_SERVICE, 0, 0, "OK");
communication.sendMessage(msg);
}
else{
msg = communication.obtainMessage(ACCESS_WEB_SERVICE, 0, 0, "Echec : "+reponse.getStatusLine().getStatusCode()+"\nRaison"+reponse.getStatusLine().getReasonPhrase());
communication.sendMessage(msg);
} |
En espérant que le getReasonPhrase() correspondent au message renvoyé plus haut
Mais seulement, seul le message habituel s'affiche : Internal Server Error
Quelqu'un aurait-il une façon de faire la chose ?