Reputation: 175
I try to Post a value to my Rest Service, my problem is to know why I have an Error 500 ? It is my first time with this framework and I don't know how to have response from WebService ...
I give you my error :
jplanningandroid.ejplanningandroid W/System.err: retrofit.RetrofitError: 500
07-31 12:18:43.648 28828-28927/ejplanningandroid.ejplanningandroid W/System.err: at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:388)
07-31 12:18:43.648 28828-28927/ejplanningandroid.ejplanningandroid W/System.err: at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:240)
07-31 12:18:43.648 28828-28927/ejplanningandroid.ejplanningandroid W/System.err: at java.lang.reflect.Proxy.invoke(Proxy.java:393)
07-31 12:18:43.648 28828-28927/ejplanningandroid.ejplanningandroid W/System.err: at $Proxy0.PostDisponibilite(Unknown Source)
07-31 12:18:43.648 28828-28927/ejplanningandroid.ejplanningandroid W/System.err: at ejplanningandroid.ejplanningandroid.Class.PostTask.doInBackground(PostTask.java:28)
07-31 12:18:43.648 28828-28927/ejplanningandroid.ejplanningandroid W/System.err: at ejplanningandroid.ejplanningandroid.Class.PostTask.doInBackground(PostTask.java:16)
07-31 12:18:43.648 28828-28927/ejplanningandroid.ejplanningandroid W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:295)
07-31 12:18:43.648 28828-28927/ejplanningandroid.ejplanningandroid W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
07-31 12:18:43.648 28828-28927/ejplanningandroid.ejplanningandroid W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
07-31 12:18:43.648 28828-28927/ejplanningandroid.ejplanningandroid W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
07-31 12:18:43.648 28828-28927/ejplanningandroid.ejplanningandroid W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
07-31 12:18:43.648 28828-28927/ejplanningandroid.ejplanningandroid W/System.err: at java.lang.Thread.run(Thread.java:818)
I post my data with a Asynctask :
public class PostTask extends AsyncTask<String,Void,List<String>> {
@Override
protected List<String> doInBackground(String... params) {
try {
InterfaceService interfaceService = new RestAdapter.Builder()
.setEndpoint(InterfaceService.path).build()
.create(InterfaceService.class);
String login = params[0];
String pass = params[1];
String date = params[2];
List<String> post = interfaceService.PostDisponibilite(login, pass,date);
return post;
}catch (RetrofitError retrioftError){
retrioftError.printStackTrace();
return null;
}
}
}
AND My post :
@FormUrlEncoded
@POST("/disponibilite")
List PostDisponibilite(@Query("login") String login, @Query("password") String password,
@Field("dateDisponibilite") String dateDisponibilite);
I give you my Rest post :
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response addisponibilite(@QueryParam("login") String login,
@QueryParam("password") String password, String dateDisponibilite) {
try {
Utilisateur utilisateur = UtilisateurMapper.getByPseudoAndMDP(login.trim(), password.trim());
if (utilisateur.getLogin() != null) {
Disponibilite disponibilite = new Disponibilite();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date dateFormater = format.parse(dateDisponibilite);
disponibilite.setDate(dateFormater);
mapper.add(disponibilite);
UtilisateurDisponibilite utilisateurDisponibilite = new UtilisateurDisponibilite();
utilisateurDisponibilite.setUtilisateur(utilisateur);
utilisateurDisponibilite.setDisponibilite(disponibilite);
utilisateurDisponibiliteMapper.add(utilisateurDisponibilite);
return Response.status(Response.Status.CREATED).entity(disponibilite).build();}
else {
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
new MessageServiceErreur("Vous devez être connecté pour accéder au service")).build();
}
} catch (IllegalStateMessage exception) {
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
new MessageServiceErreur(dateDisponibilite)).build();
} catch (ParseException ex) {
Logger.getLogger(DisponibiliteService.class.getName()).log(Level.SEVERE, null, ex);
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(
new MessageServiceErreur(dateDisponibilite+" PArse error")).build();
}
}
I use my asyntask with :
PostTask postTask =
(PostTask) new PostTask()
.execute(((MainActivity) getActivity()).getUtilisateur().getLogin(),
((MainActivity) getActivity()).getUtilisateur().getMotDepasse(),
sdf.format(new Date(calendar.getDate())));
My question is How can I my exception message send to my Rest Service in my android log ?
500 ERROR FROM POSTMAN
Upvotes: 0
Views: 943
Reputation: 5329
ERROR 500 INTERNAL SERVER ERROR means that there is problem in the server side not at your android application, check your webservice using POSTMAN
link
Upvotes: 1