Bonjour,

j'ai un problème avec un webService pour tester la connexion.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :


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 !