BlackBerry Forums Support Community               

Closed Thread
 
LinkBack Thread Tools
Old 07-18-2008, 04:27 PM   #1 (permalink)
New Member
 
Join Date: Jul 2008
Model: 8100
PIN: N/A
Carrier: tombile
Posts: 6
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default BlackBerry JDE and kSoap and noobs

Please Login to Remove!

Hello,

I've noticed a lot of posts that deal with kSoap2 and JDE 4.x and people new to the platform. Being new to Java and Blackberry development, I struggled with it the past week and wanted to make a post so that others wont have to spend so much time hunting and searching like I did. I hope this helps.

I am assuming you have JDE 4.x installed.

see below for correct steps as of 2 pm 7/18/08.

Last edited by jeckerlin : 07-18-2008 at 05:03 PM. Reason: i failed
Offline  
Old 07-18-2008, 05:02 PM   #2 (permalink)
New Member
 
Join Date: Jul 2008
Model: 8100
PIN: N/A
Carrier: tombile
Posts: 6
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

looks like I got a little ahead of myself. Looks like you need to do things a little differently so the blackberry device will load the ksoap files correctly.

Modified steps appear to be:
1) You need a preverified ksoap2-j2me-core-2.1.2.jar (attached) file. The ones from the kSoap site arenxxx8217;t preverified and when attempting to do so it failed. I attempting to go through a preverification process but have been unsuccessful. I obtained the attached jar from a post by richard.puckett of a preverified ksoap2-j2me-core-2.1.2.jar file.

Since I'm new to the forums, I cant specify a direct link to the file. If you do a search for a thread called 'Preverified ksoap2' you can find Richard's link
to the file.

2) Within your JDE project, create a xxx8216;libxxx8217; folder. Using Windows Explorer, create a lib folder within your project and put the ksoap2-j2me-core-2.1.2.jar file in there.


3) Create a new 'Library' in your JDE workspace called kSoap. Add the preverified ksoap2-j2me-core-2.1.2.jar in the lib folder to that library.

4) Set the project dependencies to depend on the new library. Right click your main project -> select project dependencies -> select the kSoap library as a dependency

5) compile w/o errors

Below is simple code to call a .Net web service:

code extract from java file:
String serviceUrl = "<url to web service>l";
String serviceNamespace = "h t t p : / / tempuri . org /";
String soapAction = "h t t p : / / tempuri.org / HelloWorld";

SoapObject rpc = new SoapObject(serviceNamespace, "HelloWorld");

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.encodingStyle = SoapSerializationEnvelope.XSD;

HttpTransport ht = new HttpTransport(serviceUrl);
ht.debug = true;

try
{
ht.call(soapAction, envelope);

String result = (envelope.getResult()).toString();


}
catch(org.xmlpull.v1.XmlPullParserException ex2){

}
catch(Exception ex){
String bah = ex.toString();

}


Code Extract from .Net web Service
namespace TestService
{
/// <summary>
/// Summary description for Service1
/// </summary>
[WebService(Namespace = "h t t p : / / tempuri . org /")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{

[WebMethod]
public string HelloWorld()
{
return "Hello World" + System.DateTime.Now.ToString();
}
}
}

Last edited by jeckerlin : 07-18-2008 at 07:21 PM. Reason: failed again
Offline  
Old 07-18-2008, 06:19 PM   #3 (permalink)
New Member
 
Join Date: Jul 2008
Model: 8100
PIN: N/A
Carrier: tombile
Posts: 6
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Here is another example passing in a simple string parameter:

java:
String serviceUrl = <url to web service>;
String serviceNamespace = "h t tp ://tempuri.org/";
String soapAction = h t tp://tempuri.org/HelloWorldParam";
String methodName = "HelloWorldParam";

SoapObject rpc = new SoapObject(serviceNamespace, methodName);
rpc.addProperty("Name", "Jeff");

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.encodingStyle = SoapSerializationEnvelope.ENC;

HttpTransport ht = new HttpTransport(serviceUrl);
ht.debug = true;
ht.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

String result = null;

try
{
ht.call(soapAction, envelope);
result = (envelope.getResult()).toString();
}
catch(org.xmlpull.v1.XmlPullParserException ex2){

}
catch(Exception ex){
String bah = ex.toString();
}


.net web service
namespace TestService
{
/// <summary>
/// Summary description for Service1
/// </summary>
[WebService(Namespace = "h t tp : //tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{

[WebMethod]
public string HelloWorld()
{
return "Hello World" + System.DateTime.Now.ToString();
}

[WebMethod]
public string HelloWorldParam(string Name)
{
return "Hello " + Name;
}
}
}
Offline  
Old 07-18-2008, 07:29 PM   #4 (permalink)
New Member
 
Join Date: Jul 2008
Model: 8100
PIN: N/A
Carrier: tombile
Posts: 6
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

User a complex type from a .net web service:

java:
String serviceUrl = "h t t p://192.168.0.103/BBService/Service1.asmx";
String serviceNamespace = "h t t p//tempuri.org/";
String soapAction = "h t t p://tempuri.org/HelloWorldComplexType";
String methodName = "HelloWorldComplexType";

SoapObject rpc = new SoapObject(serviceNamespace, methodName);
rpc.addProperty("Name", "Jeff");
rpc.addProperty("Password", "nonya");

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

envelope.bodyOut = rpc;
envelope.dotNet = true;
envelope.encodingStyle = SoapSerializationEnvelope.ENC;

HttpTransport ht = new HttpTransport(serviceUrl);
ht.debug = true;
ht.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

String result = null;

try
{
ht.call(soapAction, envelope);
result = (envelope.getResult()).toString();
}
catch(org.xmlpull.v1.XmlPullParserException ex2){

}
catch(Exception ex){
String bah = ex.toString();
}

.net web service:
namespace TestService
{
/// <summary>
/// Summary description for Service1
/// </summary>
[WebService(Namespace = "h t t p://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{

[WebMethod]
public string HelloWorld()
{
return "Hello World" + System.DateTime.Now.ToString();
}

[WebMethod]
public string HelloWorldParam(string Name)
{
return "Hello " + Name;
}


[WebMethod]
public user HelloWorldComplexType(string Name, string Password)
{
user myUser = new user(Name, Password);

return myUser;
}

public class user
{
public user()
{


}

public user(string name, string pwd)
{
usrName = name;
usrPassword = pwd;
}

public string usrName { get; set; }

public string usrPassword { get; set; }
}
}
}
Offline  
Old 07-18-2008, 07:33 PM   #5 (permalink)
New Member
 
Join Date: Jul 2008
Model: 8100
PIN: N/A
Carrier: tombile
Posts: 6
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

nice tutorial

h t t p : / / w w w . ddj.com/mobile/208800166;
jsessionid=WMSG5RH5VNUR0QSNDLRSKH0CJUNN2JVN?pgno=2
Offline  
Old 07-22-2008, 03:52 PM   #6 (permalink)
Knows Where the Search Button Is
 
Join Date: May 2008
Model: 8310
PIN: N/A
Carrier: ATT
Posts: 17
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Thank you...very useful, I have been struggling to get this working
Offline  
Old 08-28-2008, 02:16 AM   #7 (permalink)
Knows Where the Search Button Is
 
Join Date: Aug 2008
Location: Scotland
Model: None!
PIN: N/A
Carrier: Vodafone
Posts: 31
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Excellant jeckerlin, appreciate you taking the time to help out us newbies.

The only thing i'm having problems with is that i am using Eclipse and can't seem to get the ksoap libraries to compile along with the rest of the code into 1 cod file. You describe how to do this in JDE, any ideas how to in Eclipse?

Thanks
Offline  
Old 09-26-2008, 02:55 AM   #8 (permalink)
New Member
 
Join Date: Sep 2008
Model: 7100T
PIN: N/A
Carrier: Verizon
Posts: 2
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default I/O Error

I/O Error: Import file not found: ..\ksoap\ksoap.jar
Error while building project

That's the error I get when I follow the directions above. The project I created I made a Library project. There is no ksoap.jar. Don't know why there would be.

Any ideas on a fix?
Offline  
Old 09-26-2008, 04:13 AM   #9 (permalink)
CrackBerry Addict
 
Join Date: Apr 2005
Location: hamburg, germany
Model: 8900
Carrier: o2
Posts: 838
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Quote:
Originally Posted by laran View Post
I/O Error: Import file not found: ..\ksoap\ksoap.jar
Error while building project
1) You need a preverified ksoap2-j2me-core-2.1.2.jar (attached) file
__________________
java developer, Devinto, hamburg/germany
Offline  
Old 09-26-2008, 09:43 AM   #10 (permalink)
New Member
 
Join Date: Sep 2008
Model: 7100T
PIN: N/A
Carrier: Verizon
Posts: 2
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Quote:
Originally Posted by simon.hain View Post
1) You need a preverified ksoap2-j2me-core-2.1.2.jar (attached) file
I verified the jar myself. Is that not good enough?
Offline  
Old 10-01-2008, 09:20 AM   #11 (permalink)
New Member
 
Join Date: Sep 2008
Model: 8310
PIN: N/A
Carrier: at&t
Posts: 2
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Thanks a lot.. Nice tutorial.. My issue is solved..
Offline  
Old 10-14-2008, 10:02 PM   #12 (permalink)
New Member
 
Join Date: Oct 2008
Model: 8130
PIN: N/A
Carrier: Bell Mobility
Posts: 3
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default cannot find symbol for SoapObject

Hi,

I followed the above steps and I am getting an error "cannot find symbol" SoapObject. I followed the first steps as described above and it compiled OK. As soon as I added the SoapObject code I get this error. Any suggestions how to fix this? I am trying to call a .NET Web service developed using VS2005.

Thanks,
Sundar
Offline  
Old 10-15-2008, 03:26 AM   #13 (permalink)
Talking BlackBerry Encyclopedia
 
Join Date: Jan 2008
Location: France
Model: 8310
PIN: N/A
Carrier: Vodafone
Posts: 217
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Hum did you add the librairie to the project and be successfull when importing librairies??
Offline  
Old 10-21-2008, 08:28 PM   #14 (permalink)
New Member
 
Join Date: Oct 2008
Model: 8130
PIN: N/A
Carrier: Bell Mobility
Posts: 3
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default calling .NET Web Service

Yes I added the libraries to the project. What is the import statement to call the SoapObject classes?

Last edited by skraj72 : 10-21-2008 at 08:34 PM.
Offline  
Old 10-21-2008, 08:39 PM   #15 (permalink)
Knows Where the Search Button Is
 
Join Date: Oct 2008
Model: 7100T
PIN: N/A
Carrier: internal
Posts: 15
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Quote:
Originally Posted by skraj72 View Post
Yes I added the libraries to the project. What is the import statement to call the SoapObject classes?
Huh?

// SOAP Library imports.
import org.ksoap2.*;
import org.ksoap2.serialization.*;
import org.ksoap2.transport.*;

RR.
__________________
www.pymblesoftware.com
P.O. Box 121,
Pymble,
NSW 2073
AUSTRALIA. +61 2 99830308
Offline  
Old 10-22-2008, 10:33 AM   #16 (permalink)
Knows Where the Search Button Is
 
Join Date: Oct 2008
Model: 7100T
PIN: N/A
Carrier: Unknow
Posts: 42
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

**** BlackBerry and Ksoap2 Tutorial *****
Offline  
Old 12-09-2008, 03:10 AM   #17 (permalink)
Thumbs Must Hurt
 
Join Date: Oct 2008
Model: 8800
PIN: N/A
Carrier: Globe
Posts: 52
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

hi jeckerlin,

your samples are very helpful. thanks so much for that.

now, im trying something new. i want to pass a complex type as a parameter to the webmethod. but everytime i do so, the contents of the complex type get replaced with the values that are defined in the default constructor. if the default constructor is empty, the values become null. is there a solution to this problem? i've looked everywhere and nothing has been successful.

please please help!

thanks,
jaclyn
Offline  
Old 12-30-2008, 02:36 AM   #18 (permalink)
Thumbs Must Hurt
 
Join Date: Jan 2007
Location: India
Model: 8700g
Carrier: Airtel
Posts: 117
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Hi all,

I have gone through the posts above, and its been real helpful. It works fine on the simulator. But i am having a problem while installing on the device. When i install the application on the device, and try to open it, it gives an error: "Error starting testKsoap: Module 'kSoap' not found." Following is the alx i am using:
************************************
<loader version="1.0">
<application id="testKsoap">
<name >

</name>
<description >

</description>
<version >

</version>
<vendor >
MyCompany
</vendor>
<copyright >
Copyright (c) 2008 MyCompany
</copyright>
<fileset Java="1.24">
<directory >

</directory>
<files >
testKsoap.cod

</files>

</fileset>
<application id="kSoap">
<name >

</name>
<description >

</description>
<version >

</version>
<vendor >
MyCompany
</vendor>
<copyright >
Copyright (c) 2008 MyCompany
</copyright>
<fileset Java="1.24">
<directory >

</directory>
<files >
kSoap.cod

</files>

</fileset>

</application>

</application>

</loader>

************************************

Basically, the kSoap library module is not getting installed on the device. I dont know what i am doing wrong. Please help.
__________________
Thanks
Meenal
Offline  
Old 01-05-2009, 09:24 AM   #19 (permalink)
tbi
New Member
 
Join Date: Dec 2008
Model: 9000
PIN: N/A
Carrier: Rogers
Posts: 4
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

@Meenal: I got the same error - what I ended up doing is installing the ksoap library separately on the blackberry device - this allows you app to execute with errors.

I'm having a different problem with ksoap/bb:
I've got my app running without issues on the simulator but when I run it on the actual device, it says its sending data to my .net web-service but I don't receive anything on the other end - anyone had this issue?
Offline  
Old 01-08-2009, 02:47 PM   #20 (permalink)
tbi
New Member
 
Join Date: Dec 2008
Model: 9000
PIN: N/A
Carrier: Rogers
Posts: 4
Post Thanks: 0
Thanked 0 Times in 0 Posts
Default

Quote:
Originally Posted by tbi View Post
@Meenal: I got the same error - what I ended up doing is installing the ksoap library separately on the blackberry device - this allows you app to execute with errors.

I'm having a different problem with ksoap/bb:
I've got my app running without issues on the simulator but when I run it on the actual device, it says its sending data to my .net web-service but I don't receive anything on the other end - anyone had this issue?
Solution:
Figured out the BES server was causing this issue. My guess is, since this is an unsigned app, it wouldn't allow it to communicate with the web-service.

Tested out my app on phones that were not on BES and it worked every time.
Offline  
Closed Thread


Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On





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