XMLPULLPARSEREXCEPTION...in KSOAP2

Posted by aka47 on Stack Overflow See other posts from Stack Overflow or by aka47
Published on 2010-05-28T03:59:12Z Indexed on 2010/05/28 4:01 UTC
Read the original article Hit count: 921

Filed under:
|

iam using KSOAP2 for web services. my client is BlackBerry Phone and Server is KeyRingLabs.com. i am using php page for connection...i have taken this code form a Forum.and modified it according to my requirements...but I am having XMLPULLPARSER EXCEPTION...can any body help???

here is my code....

import net.rim.device.api.ui.; import net.rim.device.api.ui.component.; import net.rim.device.api.ui.container.; import net.rim.device.api.system.;

import java.util.; import org.ksoap2.; import org.ksoap2.serialization.; import org.ksoap2.transport.; import java.io.IOException;

import org.ksoap2.SoapEnvelope; import org.ksoap2.SoapFault; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.ksoap2.transport.HttpTransport; import org.xmlpull.v1.XmlPullParserException;

final class StockQuoteDemo extends UiApplication { public static void main (String[] args) { StockQuoteDemo theApp = new StockQuoteDemo (); theApp.enterEventDispatcher (); }

public StockQuoteDemo () { pushScreen (new StockQuoteScreen ()); //doSOAP(); }

final class StockQuoteScreen extends MainScreen { public static final String action = "http://keyringlabs.com/Login"; public static final String namespaceRoot = "bbpointofsale.com"; //public static final String webroot = "http://192.168.1.2/bbpointofsale.com/"; public static final String webroot = "http://192.168.0.35/"; //public static final String webroot = "http://www.bbpointofsale.com"; public String errorMessage; public String key; public String transactionID; private HttpTransport transport; private SoapSerializationEnvelope envelope;

public StockQuoteScreen () { //transport = new HttpTransport(webroot + "bb/service/index.php"); transport = new HttpTransport(webroot+"Disk/rashid11/index4.php"); transport.debug = true; envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12); key = null; envelope.encodingStyle = SoapSerializationEnvelope.XSD1999; ProcessLogin("[email protected]","123456"); //Dialog.alert("GEN 1"); //Dialog.alert("Warr Gai Vai!!!");

}

public boolean onClose () { Dialog.alert ("Goodbye!"); System.exit (0); return true; }

public boolean ProcessLogin(String email, String password) { System.err.println("Starting The Process");

errorMessage = "";

String namespace = "urn:" + namespaceRoot + ":login"; //System.err.println("LINK:"+namespace); // SoapObject message = new SoapObject(namespace, "login"); SoapObject message = new SoapObject(namespaceRoot, "login");

message.addProperty("email", email); message.addProperty("password", password);

envelope.bodyOut = message;

// System.err.println("KSOAP:"+ envelope.toString());

//String soapAction = namespace + "#login"; String soapAction = "http://bbpointofsale.com/login"; // System.err.println("Action : "+soapAction);

try { //transport.setXmlVersionTag(""); transport.call(soapAction, envelope);

} catch (IOException e) { e.printStackTrace(); System.out.println("error: "+e.getMessage()); errorMessage = e.getMessage(); System.out.println("response1: "+transport.responseDump); return false; } catch (XmlPullParserException e) { e.printStackTrace();

     errorMessage = e.getMessage();
     System.out.println("request2: "+transport.requestDump);  
     System.out.println("response2: "+transport.responseDump);
           return false;

}

try {
      SoapObject result = (SoapObject) ((SoapObject)envelope.getResponse()).getProperty(0);

            key = hackToGetResponse("serviceToken", result.toString());

      if (key.length() > 0) {
                    System.out.println("KEY:" + key);
                  return true;
       } else {

         }
     } catch (SoapFault e) {
            errorMessage = e.getMessage();
     System.out.println("response3: "+transport.responseDump);
           return false;

} catch (Exception e) { errorMessage = e.getMessage(); System.err.println("response4: "+transport.responseDump); return false; }

return false;

}

public String hackToGetResponse(String key, String response) { System.out.println("hackToGetResponse:" + response); String start = "anyType{key=" + key + "; value="; String end = "; }";

if (response.indexOf(start) == -1 || response.indexOf(end) == -1) return "";

  System.out.println("hackToGetResponse:" + "response.substring(0, " + response.indexOf(start)  + ").substring(0, " + response.indexOf(end) + ");");
 response = response.substring(response.indexOf(start) + start.length());
   response = response.substring(0, response.indexOf(end));

 if (response.indexOf("anyType{}") != -1) return "";

return response; } }

}

//******************PHP FILE************************

$server = new SoapServer(null, array('uri' => "urn:keyringlabs.com")); //$server = new SoapServer(null, array('uri' => "urn: bbpointofsale.com")); $server->addFunction("login");

//$email='[email protected]'; //$pass='123456';

function login($email, $pass) {

if (strlen($email) == 0) {
    return Array('serviceToken' => '');
} elseif (strlen($pass) == 0) {
    return Array('serviceToken' => '');
} else {
    $objMerchant = Merchant::LoadByEmailPassword($email, $pass);
    if ($objMerchant == null || $objMerchant->Id &lt==1) {
        return Array('serviceToken' => '');
    } else {
        $key = uniqid();
        $objSess = new Merchantsessions();
        $objSess->MerchantID = $objMerchant->Id;
        $objSess->ServiceToken = $key;
        $objSess->Save();
    }
}
$result = Array('serviceToken' => $key);
//print  $result;
return $result;

}

?>

///****************************************

is there any need of an XML page or something..to run it perfectly...please help

thank you for your time!

© Stack Overflow or respective owner

Related posts about web-services

Related posts about blackberry