Le forum a été mis à jour! (lire la suite...)
mounirloubari

invocation d'un web service

14 posts in this topic

Bonjour,

j'ai un petit souci avec l'invocation de web service que j'ai développé sur mon poste local, mon client est une application android simple , l'appli bug lors de l’exécution de l’instruction :

androidHttpTransport.call(SOAP_ACTION, envelope);

l'URL que j'utilise est : http://10.226.245.15:8080/test/ExempleWS?wsdl.(avec une adresse IP de mon poste local).

et avec SOAP_ACTION = "" car il est déclaré vide dans mon WSDL :

<?xml version="1.0" encoding="UTF-8" ?>

- <wsdl:definitions name="ExempleWSService" targetNamespace="http://ExempleWS.ws.test.fr/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/'>http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ExempleWS.ws.test.fr/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

- <wsdl:message name="greet">

<wsdl:part name="arg0" type="xsd:string" />

</wsdl:message>

+ <wsdl:message name="sum">

<wsdl:part name="arg0" type="xsd:int" />

<wsdl:part name="arg1" type="xsd:int" />

</wsdl:message>

- <wsdl:message name="mutiply">

<wsdl:part name="arg0" type="xsd:int" />

<wsdl:part name="arg1" type="xsd:int" />

</wsdl:message>

- <wsdl:message name="mutiplyResponse">

<wsdl:part name="return" type="xsd:int" />

</wsdl:message>

- <wsdl:message name="greetResponse">

<wsdl:part name="return" type="xsd:string" />

</wsdl:message>

- <wsdl:message name="sumResponse">

<wsdl:part name="return" type="xsd:int" />

</wsdl:message>

- <wsdl:portType name="IExempleWS">

- <wsdl:operation name="greet">

<wsdl:input message="tns:greet" name="greet" />

<wsdl:output message="tns:greetResponse" name="greetResponse" />

</wsdl:operation>

- <wsdl:operation name="sum">

<wsdl:input message="tns:sum" name="sum" />

<wsdl:output message="tns:sumResponse" name="sumResponse" />

</wsdl:operation>

- <wsdl:operation name="mutiply">

<wsdl:input message="tns:mutiply" name="mutiply" />

<wsdl:output message="tns:mutiplyResponse" name="mutiplyResponse" />

</wsdl:operation>

</wsdl:portType>

- <wsdl:binding name="ExempleWSServiceSoapBinding" type="tns:IExempleWS">

<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />

- <wsdl:operation name="greet">

<soap:operation soapAction="" style="rpc" />

+ <wsdl:input name="greet">

<soap:body namespace="http://ExempleWS.ws.test.fr/" use="literal" />

</wsdl:input>

- <wsdl:output name="greetResponse">

<soap:body namespace="http://ExempleWS.ws.test.fr/" use="literal" />

</wsdl:output>

</wsdl:operation>

- <wsdl:operation name="sum">

<soap:operation soapAction="" style="rpc" />

- <wsdl:input name="sum">

<soap:body namespace="http://ExempleWS.ws.test.fr/" use="literal" />

</wsdl:input>

- <wsdl:output name="sumResponse">

<soap:body namespace="http://ExempleWS.ws.test.fr/" use="literal" />

</wsdl:output>

</wsdl:operation>

- <wsdl:operation name="mutiply">

<soap:operation soapAction="" style="rpc" />

- <wsdl:input name="mutiply">

<soap:body namespace="http://ExempleWS.ws.test.fr/" use="literal" />

</wsdl:input>

- <wsdl:output name="mutiplyResponse">

<soap:body namespace="http://ExempleWS.ws.test.fr/" use="literal" />

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

- <wsdl:service name="ExempleWSService">

- <wsdl:port binding="tns:ExempleWSServiceSoapBinding" name="ExempleWSPort">

<soap:address location="http://localhost:8080/test/ExempleWS" />

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

personne peut m aider?

Share this post


Link to post
Share on other sites

Et quand tu dis que ça bugge, il se passe quoi ? une exception ? que dit le LogCat ?

Ps: pense à utiliser les balises [ code ] lorsque tu insères du code dans tes posts, ça le rendrait plus lisible... Merci

mounirloubari likes this

Share this post


Link to post
Share on other sites

En fait pendant mon débogage mon programme plante quand j'invoque le web service:

androidHttpTransport.call(SOAP_ACTION, envelope)

le LogCat me dit : request time failed :java.net.SocketException: Address family not supported by protocol.

Edited by mounirloubari

Share this post


Link to post
Share on other sites

et as tu essayé d'accéder à l'URL que tu utilises depuis le navigateur de ton smartphone ? parce que l'erreur semblerait indiquer que ton appli n'arrive pas à accéder à ton serveur...

Share this post


Link to post
Share on other sites

c'est l'erreur que mon émulateur crash quant j'utilise son navigateur.

ps: URL marche bien dans google chrome.

sachant que je suis derrière un proxy.

onReceivedError -2 http://www.google.com/m?hl=fr&gl=fr&source=android-browser-type&q=http%EF%BC%9A%EF%BC%8F%EF%BC%8F10%EF%BC%8E226%EF%BC%8E245%EF%BC%8E15%EF%BC%9A8080%EF%BC%8Ftest%EF%BC%8FExempleWS%EF%BC%9Fwsdl URL introuvable.

Edited by mounirloubari

Share this post


Link to post
Share on other sites

Tu peux résumer ce que tu cherches à faire ? parce que je ne comprends pas trop...

Tu veux accéder depuis ton appli Android, qui tourne sur l'émulateur, à un web-service : il est situé où, ce web-service ? sur un serveur ? sur ton poste de dév. ?

Si ce que tu veux faire, c'est accéder depuis l'émulateur à un web-service déployé sur ton poste de dév., alors l'adresse ip à utiliser pour accéder à ce web-service est 10.0.2.2, et non l'adresse ip réelle de ta machine (cf documentation de l'émulateur)

mounirloubari likes this

Share this post


Link to post
Share on other sites

Je crains Mounirloubari que tu ne trouves pas ta réponse ici, pas plus qu'ailleurs. Depuis 1 mois je bloque sur le même problème que toi, j'ai écumé tous les forums, le problème est rencontré par plein de gens mais personne n'est capable de fournir la solution.

androidHttpTransport.call(SOAP_ACTION, envelope) : cette fichue ligne est toujours refusée, j'ai tout essayé mais en vain.

Je commence à croire qu'il n'est tout simplement pas possible d'accéder à un service SOAP depuis Androïd.

Si tu as la réponse, je suis bien sur preneur, et j'aimerais bien que si quelqu'un a utilisé SOAP nous dise comment il a fait.

Tous les codes sur internet sont identiques à ce sujet pourtant, donc aucun ne doit fonctionner. Je crois bien que je vais devoir repasser sur Windows Phone, au moinslà, les services Soap fonctionnent nickel.

Merci et courage.

Share this post


Link to post
Share on other sites

Bonjours,

je viens de faire fonctionner ma connexion au web service, mon erreur c’était l'adresse IP que je doit fournir dans l'URL du WSDL (merci chpil ).

donc je ne sais tu as quoi comme erreur mais essaie:

SOAP_ACTION1 = NAMESPACE + METHOD_NAME1

URL:

http://10.0.2.2:8080/test/ExempleWS?wsdl

dans le cas ou ton web service tourne sur ton poste local.

sinon tu as quoi comme erreur , peut être je pourrais t aider?

Edited by mounirloubari

Share this post


Link to post
Share on other sites

Bonjour,

en fait la j'essaie d'envoyer une position (un objet) à mon web service, le LogCat me signale cette erreur:

java.lang.RuntimeException: Cannot serialize: com.example.entity.Position@44e94578

comment faire pour sérialiser mon objet (sachant que j ai implémenté l interface Serializable)?

Share this post


Link to post
Share on other sites

et maintenant mon LogCat m 'affiche:

org.xmlpull.v1.XmlPullParserException: expected: END_TAG {http://schemas.xmlsoap.org/soap/envelope/}Body (position:END_TAG </{http://schemas.xmlsoap.org/soap/envelope/}soap:Fault>@1:316 in java.io.InputStreamReader@44ea65a0) 

Share this post


Link to post
Share on other sites

Bonjour,

Toujours une question concernant l'appel d'un web service , dans le cas d'utilisation d'une tablette, quelle adresse IP dois-je utiliser (sachant sur le web service tourne sur un serveur distant).

Dois-je utiliser l'adresse IP du serveur?

merci de m'aider.

Share this post


Link to post
Share on other sites

Bien évidemment que tu dois utiliser l'adresse du serveur (ip ou son nom). Et que ce soit un appel depuis une tablette, un smartphone ou autre n'y change rien...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now