forum frandroid - android et tablette

Aller au contenu

  • Connectez-vous avec Facebook Connectez-vous avec Twitter Connexion avec Google Connexion
  • Créer un compte
Change

Android avec un serviceweb


  • Merci de vous connecter pour répondre
1 réponse à ce sujet

#1
mrtoto

mrtoto

    Newbie

  • Membre
  • 2 messages
bonjour tout le monde voila mon code mais ça marche pas aidé moi SVP

coté webservice:

package ws;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

@WebService(serviceName="calcule",targetNamespace="http://ws/test")
public class Calculservice {

@WebMethod(operationName="hello")
public String hello(@WebParam(name="name")String name){
return "hello Mr "+name;
}
}

est voila la class main:

import javax.xml.ws.Endpoint;

import ws.Calculservice;

public class Main {

/**
* @param args
*/
public static void main(String[] args) {

String url="http://localhost:8685/";
Endpoint.publish(url, new Calculservice());
System.out.println("bien executé vois url dans un navigateur");

}

}

est voila code Android:


package com.example.applicationwebservice;




import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.HTTP;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.View;
import android.view.View.onclickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import android.widget.TextView;

public class Main extends Activity implements onclickListener{

//private static String URL_WS="http://localhost:8685/ws/hello";
private  Spinner spinnerFrom;
//private ProgressDialog dialog;
//private Handler mHandler;
private String resultat="initial";
private ProgressDialog dialog;
private Handler mHandler;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.spinner1, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

spinnerFrom = (Spinner) findViewById(R.id.spinner1);

spinnerFrom.setAdapter(adapter);

((TextView)findViewById(R.id.textView1)).setText("entrer deux nombre");
((TextView)findViewById(R.id.textView3)).setText(resultat);
((Button)findViewById(R.id.button1)).setonclickListener(this);

dialog  = new ProgressDialog(this);

dialog.setMessage("Appel au webservice en cours...");
dialog.setCancelable(true);

mHandler = new Handler() {
public void handleMessage(Message msg) {
switch(msg.what){
case 1:
dialog.dismiss();
((TextView)findViewById(R.id.textView2)).setText(resultat);
break;

}
}
};


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}

public void onclick(View arg0) {
if(arg0.getId()==R.id.button1){
dialog.show();
new Thread(new Runnable(){
public void run() {
try {
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 3000);
HttpConnectionParams.setSoTimeout(httpParameters, 5000);

HttpClient httpclient = new DefaultHttpClient(httpParameters);

HttpPost httppost = new HttpPost("http://localhost:868.../ws/test/hello");  
   httppost.setHeader("Content-Type", "application/x-www-form-urlencoded");

   List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);  
   nameValuePairs.add(new BasicNameValuePair("name","toto"));

   httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

   HttpResponse response = httpclient.execute(httppost);

   InputStream is=response.getEntity().getContent();

   InputStreamReader reader = new InputStreamReader(is,HTTP.UTF_8);
   resultat+=reader.toString();
   ((TextView)findViewById(R.id.textView3)).setText(resultat);
   mHandler.sendEmptyMessage(1);

} catch (Exception e) {
resultat="ERREUR";
}
};
}).start();

}


}
}

est j'ai ajouté <uses-permission android:name="android.permission.INTERNET"></uses-permission>
dans fichier de manifest


bref j'ai besoin comment savoir accéder à la methode hello lorsque j'ai exécute le programme il sera bloqué dans
Appel au webservice en cours...

merci d'avance ^^

Modifié par mrtoto, 04 August 2012 - 17:35.


#2
arnouf

arnouf

    Cofondateur FrAndroid

  • Super modérateur
  • 473 messages
  • LieuMougins
Si tu souhaites une réponse soit plus explicite car en informatique ça ne marche pas ne veut rien dire.
As tu une exception ? Es-tu passé en mode debug pour voir quel bout de code n'était pas exécuté ?

D'une manière générale ne t'attend à avoir des réponses claires et précises avec ce genre de question :)
--------------------------------
Directeur Expertise Android
Co-fondateur Humanoid : FrAndroid - AppXoid - Les Ardoises
DroidAppGen : créez vos Live Wallpapers Android




0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)