Hope this helps
http://www.vimeo.com/9633556
Thanks
-Lino



cattivik wrote:Hello!
I have a problem with AndroidHttpTransport.
If the URL is not reachable, because the server is down, AndroidHttpTransport don't thrown any Exception.
It is possible to insert a time out?
Please give me some example,
Thanks

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.example.org/AndroidSampleWebservice/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="AndroidSampleWebservice"
targetNamespace="http://www.example.org/AndroidSampleWebservice/">
<wsdl:types>
<xsd:schema targetNamespace="http://www.example.org/AndroidSampleWebservice/">
<xsd:element name="complexInData" type="tns:inData"></xsd:element>
<xsd:element name="ComplexOutData" type="tns:outData"></xsd:element>
<xsd:complexType name="inData">
<xsd:sequence>
<xsd:element name="firstName" type="xsd:string"></xsd:element>
<xsd:element name="lastName" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="outData">
<xsd:sequence>
<xsd:element name="generalData" type="tns:gData"></xsd:element>
<xsd:element name="addressData" type="tns:aData"></xsd:element>
<xsd:element name="accountData" type="tns:acData"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="gData">
<xsd:sequence>
<xsd:element name="firstName" type="xsd:string"></xsd:element>
<xsd:element name="lastName" type="xsd:string"></xsd:element>
<xsd:element name="age" type="xsd:string"></xsd:element>
<xsd:element name="sex" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="aData">
<xsd:sequence>
<xsd:element name="street1" type="xsd:string"></xsd:element>
<xsd:element name="street2" type="xsd:string"></xsd:element>
<xsd:element name="postBox" type="xsd:string"></xsd:element>
<xsd:element name="state" type="xsd:string"></xsd:element>
<xsd:element name="country" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="acData">
<xsd:sequence>
<xsd:element name="accountno" type="xsd:string"></xsd:element>
<xsd:element name="bank" type="xsd:string"></xsd:element>
<xsd:element name="accounttype" type="xsd:string"></xsd:element>
<xsd:element name="balance" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="getComplexDataRequest">
<wsdl:part element="tns:complexInData" name="parameters"/>
</wsdl:message>
<wsdl:message name="getComplexDataResponse">
<wsdl:part element="tns:ComplexOutData" name="parameters"/>
</wsdl:message>
<wsdl:portType name="AndroidSampleWebservice">
<wsdl:operation name="getComplexData">
<wsdl:input message="tns:getComplexDataRequest"/>
<wsdl:output message="tns:getComplexDataResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AndroidSampleWebserviceSOAP" type="tns:AndroidSampleWebservice">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getComplexData">
<soap:operation soapAction="http://www.example.org/AndroidSampleWebservice/getComplexData"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AndroidSampleWebservice">
<wsdl:port binding="tns:AndroidSampleWebserviceSOAP" name="AndroidSampleWebserviceSOAP">
<soap:address location="http://<your ip and port>/"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
<xsd:element name="complexInData" type="tns:inData"></xsd:element>
<xsd:complexType name="inData">
<xsd:sequence>
<xsd:element name="firstName" type="xsd:string"></xsd:element>
<xsd:element name="lastName" type="xsd:string"></xsd:element>
</xsd:sequence>
</xsd:complexType>
private static final String NAMESPACE = "http://www.example.org/AndroidSampleWebservice/";
private static final String METHOD_NAME = "complexInData";
SoapObject loSoapObject = new SoapObject(NAMESPACE, METHOD_NAME);
//At this point our loSoapObject here refers to the inData complex type.
//After this we have to set the elements firstName and the lastName into the loSoapObject
loSoapObject.addProperty("firstName","Dwarka");
loSoapObject.addProperty("lastName","Damodaran");private static final String SOAP_ACTION = "http://www.example.org/AndroidSampleWebservice/getComplexData";
private static final String URL = "http://172.25.108.49:8080/AndroidWebservice/AndroidSampleWebservice?wsdl";
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(loSoapObject);
AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL);
httpTransport.debug = true;
httpTransport.call(SOAP_ACTION, envelope);SoapObject logObject = (SoapObject)loresponse.getProperty("generalData");
SoapObject loaObject = (SoapObject)loresponse.getProperty("addressData");
SoapObject loacObject = (SoapObject)loresponse.getProperty("accountData");
Log.d("WS", "logObject: "+logObject);
Log.d("WS", "loaObject: "+loaObject);
Log.d("WS", "loacObject: "+loacObject);
Log.d("WS", "firstName: "+logObject.getProperty("firstName"));
Log.d("WS", "lastName: "+logObject.getProperty("lastName"));
Log.d("WS", "age: "+logObject.getProperty("age"));
Log.d("WS", "sex: "+logObject.getProperty("sex"));package com.android.example;
import java.io.IOException;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;
import org.xmlpull.v1.XmlPullParserException;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class WebserviceConsumer extends Activity {
/** Called when the activity is first created. */
private static final String NAMESPACE = "http://www.example.org/AndroidSampleWebservice/";
private static final String METHOD_NAME = "complexInData";
private static final String SOAP_ACTION = "http://www.example.org/AndroidSampleWebservice/getComplexData";
private static final String URL = "http://172.25.108.49:8080/AndroidWebservice/AndroidSampleWebservice?wsdl";
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d("WS", "Inside onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log
.d("WS",
"--------------------- Webservice Part Begins ---------------------");
Log.d("WS", "1. SoapObject Construction");
SoapObject loSoapObject = new SoapObject(NAMESPACE, METHOD_NAME);
// If this is not a direct type i.e. a primitive or string then you
// have to construct another SoapObject and put in the place of the
// obejct
loSoapObject.addProperty("firstName", "Dwarka");
loSoapObject.addProperty("lastName", "Damodaran");
Log.d("WS", "Construction of SOAP Object End !!!");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11); // put all required data into a soap
// envelope
Log.d("WS", "2. Envelop Created");
envelope.setOutputSoapObject(loSoapObject); // prepare request
Log.d("WS", "3. Request Into Envelop");
AndroidHttpTransport httpTransport = new AndroidHttpTransport(URL);
Log.d("WS", "4. Transport Created");
httpTransport.debug = true; // this is optional, use it if you don't
// want to use a packet sniffer to check
// what the sent message was
// (httpTransport.requestDump)
Log.d("WS", "5. Transport Level to True");
try {
httpTransport.call(SOAP_ACTION, envelope);
if (envelope != null)
{
SoapObject loresponse = (SoapObject) envelope.bodyIn;
SoapObject logObject = (SoapObject)loresponse.getProperty("generalData");
SoapObject loaObject = (SoapObject)loresponse.getProperty("addressData");
SoapObject loacObject = (SoapObject)loresponse.getProperty("accountData");
Log.d("WS", "logObject: "+logObject);
Log.d("WS", "loaObject: "+loaObject);
Log.d("WS", "loacObject: "+loacObject);
Log.d("WS", "firstName: "+logObject.getProperty("firstName"));
Log.d("WS", "lastName: "+logObject.getProperty("lastName"));
Log.d("WS", "age: "+logObject.getProperty("age"));
Log.d("WS", "sex: "+logObject.getProperty("sex"));
}
else
{
Log.d("WS", "Response Envelop Error");
}
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}
}
lrente wrote:Hi,
I'm having a problem accessing my web-service.
For now, i'm am running the WS in localhost.
This is my code:
private static final String SOAP_ACTION = "";
private static final String METHOD_NAME = "getPOIS";
private static final String NAMESPACE = "http://ws.projectName/";
private static final String URL = "http://10.0.2.2:8084/projectName/GetPOIS";
//--//
object = new SoapObject(NAMESPACE, METHOD_NAME);
envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
object.addProperty("username", "ze");
object.addProperty("latitude", 40.211491);
object.addProperty("longitude", -8.429201);
envelope.setOutputSoapObject(object);
HttpTransportSE aht = new HttpTransportSE(URL);
try{
aht.call(SOAP_ACTION, envelope);
SoapPrimitive primitive = (SoapPrimitive) envelope.getResponse();
tv.setText("From Server: " + primitive);
}catch(Exception e){
e.printStackTrace();
}
//--//
I have the internet permission in the manifest file.
And i am also using a mapactivity, instead of a normal activity
However, I can't get the webservice to respond.
This is my WSDL:
<?xml version="1.0" encoding="UTF-8"?><!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.4-b01-. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.4-b01-. --><definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.projectName/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://ws.projectName/" name="GetPOISService">
<types>
<xsd:schema>
<xsd:import namespace="http://ws.projectName/" schemaLocation="http://localhost:8084/projectName/GetPOIS?xsd=1"></xsd:import>
</xsd:schema>
</types>
<message name="getPOIS">
<part name="parameters" element="tns:getPOIS"></part>
</message>
<message name="getPOISResponse">
<part name="parameters" element="tns:getPOISResponse"></part>
</message>
<portType name="GetPOIS">
<operation name="getPOIS">
<input message="tns:getPOIS"></input>
<output message="tns:getPOISResponse"></output>
</operation>
</portType>
<binding name="GetPOISPortBinding" type="tns:GetPOIS">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></soap:binding>
<operation name="getPOIS">
<soap:operation soapAction=""></soap:operation>
<input>
<soap:body use="literal"></soap:body>
</input>
<output>
<soap:body use="literal"></soap:body>
</output>
</operation>
</binding>
<service name="GetPOISService">
<port name="GetPOISPort" binding="tns:GetPOISPortBinding">
<soap:address location="http://localhost:8084/projectName/GetPOIS"></soap:address>
</port>
</service>
</definitions>
Can anyone help me?






Users browsing this forum: No registered users and 8 guests