views:

33

answers:

0

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("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 
          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*********************************************

<?php
include("ksoap2-j2me-core-prev-2.1.2.jar"); 

$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!