Search code examples
web-servicessoapblackberryjava-meksoap2

How to consume SOAP Webservices in Blackberry


I am working on a blackberry application. I need to call soap webservices, but I am unable to do so, and am getting null as a response. Following is my code:

private static final String CONNECTION_PARAMS = ";deviceside=true";

SoapObject request = new SoapObject("http://service.action.com/", 
                                    "findActiveSecurities");            

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = request;         
HttpTransportBasicAuth ht = 
     new HttpTransportBasicAuth("http://myurl.com/ebclient/services/MobileClientService?wsdl"+CONNECTION_PARAMS, 
                                "myusername", 
                                "mypassword");

PropertyInfo propInfo=new PropertyInfo();
propInfo.type=PropertyInfo.INTEGER_CLASS;

//adding parameters
request.addProperty("arg0","NSE");
request.addProperty("arg1","0");
request.addProperty("arg2","100");


envelope.setOutputSoapObject(request);

try {
    ht.call(SOAP_ACTION, envelope);
    result = (SoapObject)envelope.getResponse();
    System.out.println(result);
} catch (IOException e) {
    e.printStackTrace();
} catch (XmlPullParserException e) {
    e.printStackTrace();
}

I am getting null as a result.Please have a look at the code and help me to correct it. Thanks in advance


Solution

  • Actually the problem was instead of passing 0 and 100 as String ...

    request.addProperty("arg0","NSE");
    request.addProperty("arg1","0");
    request.addProperty("arg2","100");
    

    I use

    request.addProperty("arg0","NSE");
    request.addProperty("arg1",new Integer(0));
    request.addProperty("arg2",new Integer(1000));
    

    also this link helped me.

    also before asking this question I was facing some problem that the Simulator was not recognizing a Library. It shows error message something like "there is no library Ksoap2_j2me.jar" - resolved from this link.

    Sorry for poor English but I think this can save time of some other developer.