Bonjour,
Je rencontre un soucis lorsque j'essaie de consommer un webService tournant sous Glassfish tous bêtes, un helloWorld.

Voilà mon code sous Android :

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
package com.SOAP.test;
 
import java.io.IOException;
 
import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.PropertyInfo;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransport;
import org.xmlpull.v1.XmlPullParserException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
 
public class TestSOAPActivity extends Activity {
 
	private static final String NAMESPACE = "http://WebService/";
	private static String URL = "http://sl3.tsii.lml:8080/HelloWorld/Hello?wsdl";
	private static final String METHOD_NAME = "hello";
	private static final String SOAP_ACTION = "http://WebService/hello";
	private TextView lblResult;
	private SoapObject request;
	private SoapSerializationEnvelope envelope;
	HttpTransport androidHttpTransport;
	SoapPrimitive resultsRequestSOAP ;
 
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
 
		Button button1 = (Button) findViewById(R.id.button1);
		button1.setOnClickListener(new OnClickListener() {
 
			@Override
			public void onClick(View v) {
 
				// recherche de l'id du textView
				lblResult = (TextView) findViewById(R.id.textView1);
 
				// création d'un SOAP Object
				request = new SoapObject(NAMESPACE, METHOD_NAME);
 
			}
		});
 
		Button button2 = (Button) findViewById(R.id.button2);
		button2.setOnClickListener(new OnClickListener() {
 
			@Override
			public void onClick(View v) {
 
				// serialisation d'une requête des des proprietées
				PropertyInfo propInfo = new PropertyInfo();
				propInfo.name = "arg0";
				propInfo.type = PropertyInfo.STRING_CLASS;
				request.addProperty(propInfo, "Bastien");
 
			}
		});
 
		Button button3 = (Button) findViewById(R.id.button3);
		button3.setOnClickListener(new OnClickListener() {
 
			@Override
			public void onClick(View v) {
 
				// creation de l'envelope SOAP
				envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
 
				// ajouter le soapObject à l'envelope
				envelope.setOutputSoapObject(request);
 
			}
		});
 
		Button button4 = (Button) findViewById(R.id.button4);
		button4.setOnClickListener(new OnClickListener() {
 
			@Override
			public void onClick(View v) {
 
				// création du protocole de transport HTTP
				androidHttpTransport = new HttpTransport(URL);
 
			}
		});
 
		Button button5 = (Button) findViewById(R.id.button5);
		button5.setOnClickListener(new OnClickListener() {
 
			@Override
			public void onClick(View v) {
 
				// Envois de la requête
				try {
					androidHttpTransport.call(SOAP_ACTION, envelope);
				} catch (IOException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (XmlPullParserException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
 
			}
		});
 
		Button button6 = (Button) findViewById(R.id.button6);
		button6.setOnClickListener(new OnClickListener() {
 
			@Override
			public void onClick(View v) {
 
				// reception de la réponse
				SoapPrimitive resultsRequestSOAP = null;
				try {
					resultsRequestSOAP = (SoapPrimitive) envelope.getResponse();
				} catch (SoapFault e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
 
				// Parse et mise dans le textView de la reponse
				lblResult.setText(resultsRequestSOAP.toString());
 
			}
		});
 
		Button button7 = (Button) findViewById(R.id.button7);
		button7.setOnClickListener(new OnClickListener() {
 
			@Override
			public void onClick(View v) {
 
				// Parse et mise dans le textView de la reponse
				lblResult.setText(resultsRequestSOAP.toString());
 
			}
		});
 
	}
}

Évidemment j'ai bien la Bibliothèque Ksoap pour pouvoir utiliser SOAP.
J'ai découpé mon programme pour voir exactement ou ça bloqué, je n'arrive pas à passer le bouton 5 concernant le HttpTransport.

Autre ce soucis, je reçois des erreurs constament :

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
[2012-04-10 10:56:22 - ddmlib] Une connexion établie a été abandonnée par un logiciel de votre ordinateur hôte
java.io.IOException: Une connexion établie a été abandonnée par un logiciel de votre ordinateur hôte
	at sun.nio.ch.SocketDispatcher.write0(Native Method)
	at sun.nio.ch.SocketDispatcher.write(Unknown Source)
	at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
	at sun.nio.ch.IOUtil.write(Unknown Source)
	at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
	at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
	at com.android.ddmlib.Client.sendAndConsume(Client.java:575)
	at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)
	at com.android.ddmlib.Client.requestAllocationStatus(Client.java:421)
	at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:837)
	at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:805)
	at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:765)
	at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:652)
	at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44)
	at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:580)

Merci de votre aide, je suis un peu bloqué actuellement pour pouvoir enfin utiliser vraiment les WebServices.