WebService SOAP : cannotResolveClassException
Bonjour,
j'ai un problème avec un webService pour tester la connexion.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
public void connexion(){
String nom = login.getText().toString();
String password = mdp.getText().toString();
String xml="";
db = new UtilisateurAdapter(getApplicationContext());
try {
xml = Service_web.connexion(nom, password);
Toast.makeText(this,"Déclaration OK", Toast.LENGTH_LONG).show();
}
catch (Exception e){
Log.e("Noresi","Erreur service web :", e);
}
try{
XStream x = new XStream(new DomDriver());
Modele.Acteurs.Observateur obs = (Modele.Acteurs.Observateur) x.fromXML(xml);
Toast.makeText(this,"fromXML OK", Toast.LENGTH_SHORT).show();
long id = obs.getIdObservateur();
db.insertUtilisateur(id, nom, password);
Toast.makeText(this,"Connexion effectuée", Toast.LENGTH_LONG).show();
db.close();
Bundle objetbunble = new Bundle();
Intent intent = new Intent(Login.this, NoresiActivity.class);
intent.putExtras(objetbunble);
startActivity(intent);
}
catch (Exception e){
Log.e("Noresi", "erreur", e);
}
} |
et le code du webService :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
public static String connexion(String login, String mdp){
String result = "";
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
try {
SoapObject request = new SoapObject("http://ServiceNoresi/", "connexion");
String SOAP_ACTION = "\"connexion\"";
String URL = "http://"+IP_SERVICE+":8080/Noresi/WebServiceNoresi?WSDL";
//String s = "azerty";
request.addProperty("login", login);
request.addProperty("mdp", mdp);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
//androidHttpTransport.debug=true;
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject response=(SoapObject) envelope.bodyIn;
//on prend tout l'XML contenu dans la réponse.
result = response.getProperty(0).toString();
} catch (Exception e) {
Log.e("connexion", "erreur web service", e);
}
return result;
} |
Le programme "plante" au niveau de
Code:
1 2 3
|
Modele.Acteurs.Observateur obs = (Modele.Acteurs.Observateur) x.fromXML(xml); |
alors que la classe Observateur à la même "forme" que le XML que je récupère.
Le code d'erreur :
Citation:
06-14 15:18:49.150: E/Noresi(4980): erreur
06-14 15:18:49.150: E/Noresi(4980): com.thoughtworks.xstream.mapper.CannotResolveClassException: Observateur
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:56)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:79)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:74)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:45)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:133)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1052)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1036)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.XStream.fromXML(XStream.java:912)
06-14 15:18:49.150: E/Noresi(4980): at com.thoughtworks.xstream.XStream.fromXML(XStream.java:903)
06-14 15:18:49.150: E/Noresi(4980): at noresi.inter.Login.connexion(Login.java:83)
06-14 15:18:49.150: E/Noresi(4980): at noresi.inter.Login$1.onClick(Login.java:54)
06-14 15:18:49.150: E/Noresi(4980): at android.view.View.performClick(View.java:3122)
06-14 15:18:49.150: E/Noresi(4980): at android.view.View$PerformClick.run(View.java:12012)
06-14 15:18:49.150: E/Noresi(4980): at android.os.Handler.handleCallback(Handler.java:587)
06-14 15:18:49.150: E/Noresi(4980): at android.os.Handler.dispatchMessage(Handler.java:92)
06-14 15:18:49.150: E/Noresi(4980): at android.os.Looper.loop(Looper.java:132)
06-14 15:18:49.150: E/Noresi(4980): at android.app.ActivityThread.main(ActivityThread.java:4126)
06-14 15:18:49.150: E/Noresi(4980): at java.lang.reflect.Method.invokeNative(Native Method)
06-14 15:18:49.150: E/Noresi(4980): at java.lang.reflect.Method.invoke(Method.java:491)
06-14 15:18:49.150: E/Noresi(4980): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
06-14 15:18:49.150: E/Noresi(4980): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
06-14 15:18:49.150: E/Noresi(4980): at dalvik.system.NativeStart.main(Native Method)
Idées, suggestions svp ?
Merci
Edit : rajouter un x.alias("Observateur", Modele.Acteurs.Observateur.class) a fait bouger les choses !