XmlPullParserException: expected: START_TAG
Bonjour,
Jet tente d’interagir avec un fichier WSDL situer dans une passerelle de marque échelon. Pour cela j'ai développer une petite application android demandent juste une requête a cette dernière. J'ai pour cela utiliser la bibliothèque Ksoap1.1.
Quand je demande la requette j'abtien une erreur XmlPullParserException: expected: START_TAG.
J'ai cherché a résoudre ce problème en modifiant mon adressage mais rien ni change.
Si vous pouvez m'aidez ou me donné des piste de recherche je vous en serez très reconnaissant.
(ps. Je suis débutant en web-service et K soap.)
voici mon logcat:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
11-26 13:02:39.635: E/Trace(1262): error opening trace file: No such file or directory (2)
11-26 13:02:40.355: D/gralloc_goldfish(1262): Emulator without GPU emulation detected.
11-26 13:02:45.655: E/Connect(1262): Erreur:
11-26 13:02:45.655: E/Connect(1262): org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <H1>@1:5 in java.io.InputStreamReader@4123dda8)
11-26 13:02:45.655: E/Connect(1262): at org.kxml2.io.KXmlParser.require(KXmlParser.java:2046)
11-26 13:02:45.655: E/Connect(1262): at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:127)
11-26 13:02:45.655: E/Connect(1262): at org.ksoap2.transport.Transport.parseResponse(Transport.java:63)
11-26 13:02:45.655: E/Connect(1262): at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100)
11-26 13:02:45.655: E/Connect(1262): at com.myconnexionsoap.Connexion$GroundServiceRead.doInBackground(Connexion.java:91)
11-26 13:02:45.655: E/Connect(1262): at com.myconnexionsoap.Connexion$GroundServiceRead.doInBackground(Connexion.java:1)
11-26 13:02:45.655: E/Connect(1262): at android.os.AsyncTask$2.call(AsyncTask.java:287)
11-26 13:02:45.655: E/Connect(1262): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-26 13:02:45.655: E/Connect(1262): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-26 13:02:45.655: E/Connect(1262): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
11-26 13:02:45.655: E/Connect(1262): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
11-26 13:02:45.655: E/Connect(1262): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
11-26 13:02:45.655: E/Connect(1262): at java.lang.Thread.run(Thread.java:856) |
Ma fonction Connexion
Code:
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
| package com.myconnexionsoap;
/****
* dépendance android
*/
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
/****
* dépendance de ksoap
*/
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.ksoap2.serialization.PropertyInfo;
public class Connexion extends Activity
{
/****
* declaration de l'adresse et des methodes
*/
private static final String NAMESPACE = "http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/wsdl/";
private static String URL="http://192.168.1.105:/WSDL/v4.0/iLON100.wsdl";
private static final String METHOD_NAME = "Read";
private static final String SOAP_ACTION = "http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/action/";
private String Results = null;
private String Errors = null;
/****
* S'éffectue la première fois que l'activité ce lance:
* Initialisation de l'activité
*/
@Override
public void onCreate (Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_connexion);
}/*** end public void onCreate (Bundle savedInstanceThread) ***/
/****
* Methode OnClick "ValRelais" de @+id/btn_TestValRelais
* @param V
*/
public void ValRelais (View V)
{
/*** Appel de la tache de fond read ***/
GroundServiceRead MyRead = new GroundServiceRead();
MyRead.execute();
}/*** public void ValRelais (View V) ***/
private class GroundServiceRead extends AsyncTask<Void, Void, Void>
{
@Override
protected void onPreExecute()
{
super.onPreExecute();
Toast.makeText(getApplicationContext(), "Début du traitement asynchrone", Toast.LENGTH_LONG).show();
}
@Override
protected Void doInBackground(Void... V)
{
try
{
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
//PropertyInfo propInfo=new PropertyInfo();
//propInfo.name="Read";
//propInfo.type=PropertyInfo.STRING_CLASS;
//request.addProperty(propInfo, "");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
envelope.bodyOut = request;
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try
{
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive resultsRequestSOAP = (SoapPrimitive) envelope.getResponse();
Results = resultsRequestSOAP.toString();
}
catch (Exception e) //connexion NOK: afficher l'exeption
{
//Affiche l'exeption clairement dans le logcat
Log.e("Connect","Erreur: ",e);
Errors = e.getMessage();
}
}
catch (Exception e)
{
Log.e("URL","Erreur: ",e);
Errors = e.getMessage();
}
/*********************************************************************************************/
return null;
}/*** protected Void doInBackground(Void... V) ***/
@Override
protected void onPostExecute(Void result)
{
super.onPostExecute(result);
if (Errors != null)
{
Toast.makeText(getApplicationContext(), "" + Results, Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), "" + Errors, Toast.LENGTH_LONG).show();
}
Toast.makeText(getApplicationContext(), "Le traitement asynchrone est terminé", Toast.LENGTH_LONG).show();
}/*** protected void onPostExecute(Void result) ***/
}/*** end private class GroundServiceRead extends AsyncTask<Void, Integer, Void> ***/
}/*** end public class Connexion extends Activity ***/ |
J'ai bien mi aussi dans le manifest la permission internet:
Code:
1 2
|
<uses-permission android:name="android.permission.INTERNET"></uses-permission> |
Et j'accède bien a mon wsdl sur internet (navigateur: Mozilla).
Voici mon fichier wsdl:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<definitions name="iLON100" targetNamespace="http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/wsdl/"><types><xsd:annotation><xsd:appinfo>
_________________________________________________________
i.LON100's general declaration of the SOAP interface.
_________________________________________________________
It is prohibited to change any declaration in this file!
Copyright 2007 Echelon Corporation
http://www.echelon.com
</xsd:appinfo><xsd:documentation>
Look into the imported xsd file for more informations
</xsd:documentation></xsd:annotation><!-- ******************************************************** --><!-- external schema import --><!-- ******************************************************** --><xsd:schema elementFormDefault="qualified"><xsd:import namespace="http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/message/" schemaLocation="iLON100.xsd"/></xsd:schema></types><!-- ******************************************************** --><!-- declaration: 'wsdl:message' --><!-- ******************************************************** --><!-- ________________________________________________________ --><!-- List --><message name="List_SoapIn"><part name="parameters" element="ilon:List"/></message><message name="List_SoapOut"><part name="parameters" element="ilon:ListResponse"/></message><!-- Get --><message name="Get_SoapIn"><part name="parameters" element="ilon:Get"/></message><message name="Get_SoapOut"><part name="parameters" element="ilon:GetResponse"/></message><!-- Set --><message name="Set_SoapIn"><part name="parameters" element="ilon:Set"/></message><message name="Set_SoapOut"><part name="parameters" element="ilon:SetResponse"/></message><!-- Delete --><message name="Delete_SoapIn"><part name="parameters" element="ilon:Delete"/></message><message name="Delete_SoapOut"><part name="parameters" element="ilon:DeleteResponse"/></message><!-- Read --><message name="Read_SoapIn"><part name="parameters" element="ilon:Read"/></message><message name="Read_SoapOut"><part name="parameters" element="ilon:ReadResponse"/></message><!-- Write --><message name="Write_SoapIn"><part name="parameters" element="ilon:Write"/></message><message name="Write_SoapOut"><part name="parameters" element="ilon:WriteResponse"/></message><!-- Clear --><message name="Clear_SoapIn"><part name="parameters" element="ilon:Clear"/></message><message name="Clear_SoapOut"><part name="parameters" element="ilon:ClearResponse"/></message><!-- InvokeCmd --><message name="InvokeCmd_SoapIn"><part name="parameters" element="ilon:InvokeCmd"/></message><message name="InvokeCmd_SoapOut"><part name="parameters" element="ilon:InvokeCmdResponse"/></message><!-- ________________________________________________________ --><!-- common header --><message name="iLON100SoapHeader"><part name="soapHeaderPart" element="ilon:messageProperties"/></message><!-- ******************************************************** --><!-- declaration: 'wsdl:portType' --><!-- ******************************************************** --><portType name="iLON100portType"><!-- ______________________________________________________ --><!-- List --><operation name="List"><input message="ilonwsdl:List_SoapIn"/><output message="ilonwsdl:List_SoapOut"/></operation><!-- Get --><operation name="Get"><input message="ilonwsdl:Get_SoapIn"/><output message="ilonwsdl:Get_SoapOut"/></operation><!-- Set --><operation name="Set"><input message="ilonwsdl:Set_SoapIn"/><output message="ilonwsdl:Set_SoapOut"/></operation><!-- Delete --><operation name="Delete"><input message="ilonwsdl:Delete_SoapIn"/><output message="ilonwsdl:Delete_SoapOut"/></operation><!-- Read --><operation name="Read"><input message="ilonwsdl:Read_SoapIn"/><output message="ilonwsdl:Read_SoapOut"/></operation><!-- Write --><operation name="Write"><input message="ilonwsdl:Write_SoapIn"/><output message="ilonwsdl:Write_SoapOut"/></operation><!-- Clear --><operation name="Clear"><input message="ilonwsdl:Clear_SoapIn"/><output message="ilonwsdl:Clear_SoapOut"/></operation><!-- InvokeCmd --><operation name="InvokeCmd"><input message="ilonwsdl:InvokeCmd_SoapIn"/><output message="ilonwsdl:InvokeCmd_SoapOut"/></operation></portType><!-- ******************************************************** --><!-- declaration: 'wsdl:binding' --><!-- ******************************************************** --><binding name="iLON100soap11Binding" type="ilonwsdl:iLON100portType"><!-- ______________________________________________________ --><!-- 'soap:binding' --><soapbind:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/><!-- ______________________________________________________ --><!-- List --><operation name="List"><soapbind:operation soapAction="http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/action/List"/><input name="ListRequest"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></input><output name="ListResponse"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></output></operation><!-- Get --><operation name="Get"><soapbind:operation soapAction="http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/action/Get"/><input name="GetRequest"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></input><output name="GetResponse"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></output></operation><!-- Set --><operation name="Set"><soapbind:operation soapAction="http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/action/Set"/><input name="SetRequest"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></input><output name="SetResponse"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></output></operation><!-- Delete --><operation name="Delete"><soapbind:operation soapAction="http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/action/Delete"/><input name="DeleteRequest"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></input><output name="DeleteResponse"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></output></operation><!-- Read --><operation name="Read"><soapbind:operation soapAction="http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/action/Read"/><input name="ReadRequest"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></input><output name="ReadResponse"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></output></operation><!-- Write --><operation name="Write"><soapbind:operation soapAction="http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/action/Write"/><input name="WriteRequest"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></input><output name="WriteResponse"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></output></operation><!-- Clear --><operation name="Clear"><soapbind:operation soapAction="http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/action/Clear"/><input name="ClearRequest"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></input><output name="ClearResponse"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></output></operation><!-- InvokeCmd --><operation name="InvokeCmd"><soapbind:operation soapAction="http://wsdl.echelon.com/web_services_ns/ilon100/v4.0/action/InvokeCmd"/><input name="InvokeCmdRequest"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></input><output name="InvokeCmdResponse"><soapbind:body parts="parameters" use="literal"/><soapbind:header message="ilonwsdl:iLON100SoapHeader" part="soapHeaderPart" use="literal"/></output></operation></binding><!-- ************************************************************* --><!-- declaration: 'wsdl:service' --><!-- ************************************************************* --><service name="iLON100"><port name="iLON100httpPort" binding="ilonwsdl:iLON100soap11Binding"><soapbind:address location="http://localhost/WSDL/iLON100.wsdl"/></port></service></definitions> |
Voila je remerci d'avance tout personne ce penchant sur mon problème.
Merci.