JDE + ksoap web service invocation
Please Login to Remove!
Hi,
I wrote a Web service Client using ksoap2 to invoke the StockQuote Service available with axis in Blackberry JDE. I am getting the following error.
"org.xmlpull.vl.XmlPullParserException: unexpected type (position: TEXT Not authorized t...@1:39 in java.io.InputStreamReader@59324728)". Did anyone get this error before? Any suggestions? I would really appreciate if someone can help me with this. Please find the code snippet below. Thank you.
import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import org.ksoap2.*;
import org.ksoap2.serialization.*;
import org.ksoap2.transport.*;
/**
*
*/
class StockQuoteScreen extends MainScreen{
StockQuoteScreen()
{
super();
LabelField applicationTitle = new LabelField("Stock Quote");
setTitle(applicationTitle);
RichTextField stockQuoteTextField = new RichTextField("gotResponse");
add(stockQuoteTextField);
// Create the outgoing message
SoapObject requestObject = new SoapObject("x", "getQuote");
// ask for the specially encoded symbol in the included service
requestObject.addProperty("symbol", "XXX");
// use version 1.1 of soap
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
// add the outgoing object as the request
envelope.setOutputSoapObject(requestObject);
//new MarshalFloat().register(envelope); // not really needed for j2se version
// Create a transport layer for the J2SE platform. You should change this for
// another transport on midp or j2me devices.
HttpTransport transportSE = new HttpTransport("http://localhost:8080/axis/StockQuoteService.jws");
// turn on debug mode if you want to see what is happening over the wire.
//transport.debug = true;
try {
// call and print out the result
transportSE.call("getQuote", envelope);
//System.out.println(envelope.getResponse());
//stockQuoteTextField.setText(((Float)envelope.getRe sponse()).toString());
stockQuoteTextField.setText(stockQuoteTextField.ge tText() + " called ");
//stockQuoteTextField = new RichTextField("gotResponse");
} catch (Exception e) {
// if we get an error print the stacktrace and dump the response out.
e.printStackTrace();
//System.out.println(transportSE.responseDump);
stockQuoteTextField.setText(stockQuoteTextField.ge tText() + e);
//stockQuoteTextField = new RichTextField(transportSE.responseDump);
}
}
public boolean onClose()
{
Dialog.alert("Bye Stock Quote!");
System.exit(0);
return true;
}
}
I tried executing the HelloWorld program with a method echo which returns back the string you pass to invoke the service. But I still have the same error showing up on BlackBerry.
Thank you,
Chandra.
|