BlackBerry Forums Support Community               

Closed Thread
 
LinkBack Thread Tools
Old 05-09-2007, 05:23 PM   #1 (permalink)
New Member
 
Join Date: May 2007
Model: 8800J
PIN: N/A
Carrier: Cingular
Posts: 6
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default 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.
Offline  
Old 05-10-2007, 01:34 PM   #2 (permalink)
New Member
 
Join Date: May 2007
Model: 8800J
PIN: N/A
Carrier: Cingular
Posts: 6
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default It works

Never mind. The problem was I changed the URL from localhost to complete domain name and it works. Obviously the device simulator doesnt have any localhost web service running.

thank you.
Offline  




Copyright 2004-2016 BlackBerryForums.com.
The names RIM and BlackBerry are registered Trademarks of BlackBerry Inc.