IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

KSOAP2 et WS SOAP PHP


Sujet :

Android

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut KSOAP2 et WS SOAP PHP
    Bonjour,

    je rencontre des problèmes lors de l'utilisation d'un webservice SOAP en php avec une appli android utilisant KSoap2.

    (aucun problème pour l'utilisation du WS via client PHP)

    Code java
    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
     
                            String	METHOD_NAME = "login";
            		String	NAMESPACE	= "urn:exemple";
            		String	URL			= "http://192.168.1.68/WS/user/user.php";
            		String	SOAP_ACTION	= "urn:log_instanceAction#login";      		   
            		try {
            			SoapObject request = new SoapObject (NAMESPACE, METHOD_NAME);
            		//	request.addProperty("tns", map);
            			SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
          		      	        envelope.setOutputSoapObject(request);
          		      	        AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);
          		                androidHttpTransport.call(SOAP_ACTION, envelope);   		      	
            		} catch (Exception e) {
          		                 Log.e("SOAP","ERROR web Service Load", e);
            		}
    code PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            $serversoap=new SoapServer($config->WS_USER_URL);	
    	$serversoap->setClass("User");
    	$serversoap->handle();
     
            //la fonction login de la classe User commence par "return true;"
    le fichier WSDL
    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
     
    <?xml version='1.0' encoding='UTF-8'?>
    <definitions name="exemple" targetNamespace="urn:exemple" xmlns:typens="urn:exemple" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
    xmlns="http://schemas.xmlsoap.org/wsdl/">
    	<message name="login">
    		<wsdl:part name="name" element="tns:array"/>
    	</message>
    	<message name="loginResponse">
    		<part name="loginReturn"/>
    	</message>
    	<portType name="log_instancePortType">
    		<operation name="login">
    			<input message="typens:login"/>
    			<output message="typens:loginResponse"/>
    		</operation>
    	</portType>
    	<binding name="log_instanceBinding" type="typens:log_instancePortType">
    		<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    		<operation name="login">
    			<soap:operation soapAction="urn:log_instanceAction"/>
    			<input>
    				<soap:body namespace="urn:exemple" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    			</input>
    			<output>
    				<soap:body namespace="urn:exemple" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    			</output>
    		</operation>
    	</binding>
    	<service name="loginService">
    		<port name="log_instancePort" binding="typens:log_instanceBinding">
    			<soap:address location="http://192.168.1.68/WS/user/user.php"/>
    		</port>
    	</service>
    </definitions>
    Erreur rencontré :
    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
     
    12-06 14:47:47.038: E/SOAP(329): ERROR web Service Load
    12-06 14:47:47.038: E/SOAP(329): org.xmlpull.v1.XmlPullParserException: expected: END_TAG {http://schemas.xmlsoap.org/soap/envelope/}Body (position:END_TAG </{http://schemas.xmlsoap.org/soap/envelope/}SOAP-ENV:Fault>@3:32 in java.io.InputStreamReader@4054acc8) 
    12-06 14:47:47.038: E/SOAP(329): 	at org.kxml2.io.KXmlParser.exception(KXmlParser.java:273)
    12-06 14:47:47.038: E/SOAP(329): 	at org.kxml2.io.KXmlParser.require(KXmlParser.java:1424)
    12-06 14:47:47.038: E/SOAP(329): 	at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:138)
    12-06 14:47:47.038: E/SOAP(329): 	at org.ksoap2.transport.Transport.parseResponse(Transport.java:63)
    12-06 14:47:47.038: E/SOAP(329): 	at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100)
    12-06 14:47:47.038: E/SOAP(329): 	at com.example.looli.MainActivity$1.onClick(MainActivity.java:82)
    12-06 14:47:47.038: E/SOAP(329): 	at android.view.View.performClick(View.java:2485)
    12-06 14:47:47.038: E/SOAP(329): 	at android.view.View$PerformClick.run(View.java:9080)
    12-06 14:47:47.038: E/SOAP(329): 	at android.os.Handler.handleCallback(Handler.java:587)
    12-06 14:47:47.038: E/SOAP(329): 	at android.os.Handler.dispatchMessage(Handler.java:92)
    12-06 14:47:47.038: E/SOAP(329): 	at android.os.Looper.loop(Looper.java:123)
    12-06 14:47:47.038: E/SOAP(329): 	at android.app.ActivityThread.main(ActivityThread.java:3683)
    12-06 14:47:47.038: E/SOAP(329): 	at java.lang.reflect.Method.invokeNative(Native Method)
    12-06 14:47:47.038: E/SOAP(329): 	at java.lang.reflect.Method.invoke(Method.java:507)
    12-06 14:47:47.038: E/SOAP(329): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    12-06 14:47:47.038: E/SOAP(329): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    12-06 14:47:47.038: E/SOAP(329): 	at dalvik.system.NativeStart.main(Native Method)
    apache/error.log => rien
    apache/access.log => "POST /WS/user/user.php HTTP/1.1" 500 456 "-" "kSOAP/2.0"

    J'ai mis des traces à différents endroits du code PHP, ca plante au niveau de $serversoap->handle()

    Quelqu'un aurait une idée ?

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Là j'avoue que je n'en ai aucune idée... on dirait que c'est le serveur qui crash (réponse 500 !)

    Par contre, ce qui est sur, c'est que le code est appelé dans un "onClick" ce qui est interdit (et fera crasher l'application dans le meilleur des cas).
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur Informatique et Développeur Android
    Inscrit en
    Janvier 2010
    Messages
    384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Informatique et Développeur Android

    Informations forums :
    Inscription : Janvier 2010
    Messages : 384
    Points : 321
    Points
    321
    Par défaut
    Est ce que tu utilise NuSOAP comme librairie côté PHP ?

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Est ce que tu utilise NuSOAP comme librairie côté PHP ?
    => Non

Discussions similaires

  1. [SOAP][PHP] WSDL, Fonction non reconnue
    Par zevince dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 18/01/2007, 11h17
  2. [Web Service][SOAP] PHP et nuSOAP
    Par loukili81 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 07/06/2006, 15h37
  3. [Web Service][SOAP] PHP NuSOAP
    Par ssebuser dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 16/05/2006, 14h29
  4. [SOAP / PHP] Sessions et Timeout
    Par Geomaster dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 09/12/2005, 09h54
  5. [soap][PHP][ASP]passage d'asp en php
    Par orzabal dans le forum XML/XSL et SOAP
    Réponses: 21
    Dernier message: 30/11/2005, 10h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo