My latest experimenting with J2ME has led me to webservices. I've
managed to communicate with several online webservice providers
including http://www.xmethods.net/ and http://www.google.com/apis/ . I
managed to do this using the small footprint SOAP package kSOAP
http://ksoap.enhydra.org/ or http://www.ksoap.org/ .Here is a copy of
the template java midlet that I use to communicate to web-services
with:
Template.java
import java.io.IOException;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.ImageItem;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import org.ksoap.SoapObject;
import org.ksoap.transport.HttpTransport;
/**
* @author Yusuf
*
*/
public class Template extends MIDlet implements CommandListener {
private Display display;
private String url = "";
private String nameSpace = "";
private String name = "";
private String key = "";
private Command sendCommand;
private Command exitCommand;
private Command backCommand;
private StringItem stringItem;
private Form form1;
private TextField textField1, textField2;
private String choice;
private ImageItem background;
public Template() {
display = Display.getDisplay(this);
stringItem = new StringItem("", "");
textField1 = new TextField("Input 1:", choice, 30,
TextField.ANY);
textField2 = new TextField("Input 2:", choice, 30,
TextField.ANY);
exitCommand = new Command("Exit", Command.EXIT, 1);
sendCommand = new Command("Invoke", Command.SCREEN, 1);
backCommand = new Command("Back", Command.BACK, 1);
background = new ImageItem("", null,
ImageItem.LAYOUT_CENTER, "no pic");
// TODO Auto-generated constructor stub
}
/*
* (non-Javadoc)
*
* @see javax.microedition.midlet.MIDlet#startApp()
*/
protected void startApp() throws MIDletStateChangeException {
form1 = new Form("Webservices");
try {
//background.setImage(Image.createImage("/google.png"));
url = getAppProperty("URL");
nameSpace = getAppProperty("NAMESPACE");
name = getAppProperty("NAME");
key = getAppProperty("KEY");
//form1.append(background);
form1.append(textField1);
form1.append(textField2);
form1.append(stringItem);
form1.addCommand(sendCommand);
form1.addCommand(exitCommand);
form1.setCommandListener((CommandListener)
this);
display.setCurrent(form1);
// TODO Auto-generated method stub
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e);
e.printStackTrace();
}
}
/*
* (non-Javadoc)
*
* @see javax.microedition.midlet.MIDlet#pauseApp()
*/
protected void pauseApp() {
// TODO Auto-generated method stub
}
/*
* (non-Javadoc)
*
* @see javax.microedition.midlet.MIDlet#destroyApp(boolean)
*/
protected void destroyApp(boolean arg0) throws
MIDletStateChangeException {
// TODO Auto-generated method stub
}
public void doInvoke(String in1, String in2) throws Exception {
StringBuffer stringBuffer = new StringBuffer();
TextBox textBox = null;
SoapObject client = new SoapObject(nameSpace, name);
//client.addProperty("LKEY", "0");
//client.addProperty("FromName", "Yusuf");
//client.addProperty("ToUserID",
"yusufk18@hotmail.com");
//client.addProperty("Message", "Watse");
//client.addProperty("CityName", "Pretoria");
//client.addProperty("CountryName", "South Africa");
//client.addProperty("myString", "hello");
client.addProperty("FromCurrency", in1);
client.addProperty("ToCurrency", in2);
HttpTransport ht = new HttpTransport(url, nameSpace);
try {
stringBuffer.append(ht.call(client));
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e);
e.printStackTrace();
System.out.println(client.getNamespace());
}
stringItem.setText(stringBuffer.toString());
System.out.println(stringBuffer);
}
/*
* (non-Javadoc)
*
* @see
javax.microedition.lcdui.CommandListener#commandAction(javax.microedition.lcdui.Command,
* javax.microedition.lcdui.Displayable)
*/
public void commandAction(Command command, Displayable arg1) {
if (command == sendCommand) {
Thread t = new Thread() {
String input1 = textField1.getString();
String input2 = textField2.getString();
public void run() {
try {
doInvoke(input1,
input2);
} catch (Exception e) {
e.printStackTrace();
}
}
};
t.start();
} else if (command == backCommand) {
display.setCurrent(form1);
}
else if (command == exitCommand) {
try {
destroyApp(false);
notifyDestroyed();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
MailScanner thanks transtec Computers for their support.
Stardate 20040101, somewhere in the Milky way galaxy: Enterprise has encountered a strange entity, which has identified itself as....The Blog
Thursday, October 14, 2004
Webservices on a J2ME mobile device
My latest experimenting with J2ME has led me to webservices. I've
managed to communicate with several online webservice providers
including http://www.xmethods.net/ and http://www.google.com/apis/ . I
managed to do this using the small footprint SOAP package kSOAP
http://ksoap.enhydra.org/ or http://www.ksoap.org/ .Here is a copy of
the template java midlet that I use to communicate to web-services
with:
Template.java
import java.io.IOException;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.ImageItem;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import org.ksoap.SoapObject;
import org.ksoap.transport.HttpTransport;
/**
* @author Yusuf
*
*/
public class Template extends MIDlet implements CommandListener {
private Display display;
private String url = "";
private String nameSpace = "";
private String name = "";
private String key = "";
private Command sendCommand;
private Command exitCommand;
private Command backCommand;
private StringItem stringItem;
private Form form1;
private TextField textField1, textField2;
private String choice;
private ImageItem background;
public Template() {
display = Display.getDisplay(this);
stringItem = new StringItem("", "");
textField1 = new TextField("Input 1:", choice, 30,
TextField.ANY);
textField2 = new TextField("Input 2:", choice, 30,
TextField.ANY);
exitCommand = new Command("Exit", Command.EXIT, 1);
sendCommand = new Command("Invoke", Command.SCREEN, 1);
backCommand = new Command("Back", Command.BACK, 1);
background = new ImageItem("", null,
ImageItem.LAYOUT_CENTER, "no pic");
// TODO Auto-generated constructor stub
}
/*
* (non-Javadoc)
*
* @see javax.microedition.midlet.MIDlet#startApp()
*/
protected void startApp() throws MIDletStateChangeException {
form1 = new Form("Webservices");
try {
//background.setImage(Image.createImage("/google.png"));
url = getAppProperty("URL");
nameSpace = getAppProperty("NAMESPACE");
name = getAppProperty("NAME");
key = getAppProperty("KEY");
//form1.append(background);
form1.append(textField1);
form1.append(textField2);
form1.append(stringItem);
form1.addCommand(sendCommand);
form1.addCommand(exitCommand);
form1.setCommandListener((CommandListener)
this);
display.setCurrent(form1);
// TODO Auto-generated method stub
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e);
e.printStackTrace();
}
}
/*
* (non-Javadoc)
*
* @see javax.microedition.midlet.MIDlet#pauseApp()
*/
protected void pauseApp() {
// TODO Auto-generated method stub
}
/*
* (non-Javadoc)
*
* @see javax.microedition.midlet.MIDlet#destroyApp(boolean)
*/
protected void destroyApp(boolean arg0) throws
MIDletStateChangeException {
// TODO Auto-generated method stub
}
public void doInvoke(String in1, String in2) throws Exception {
StringBuffer stringBuffer = new StringBuffer();
TextBox textBox = null;
SoapObject client = new SoapObject(nameSpace, name);
//client.addProperty("LKEY", "0");
//client.addProperty("FromName", "Yusuf");
//client.addProperty("ToUserID",
"yusufk18@hotmail.com");
//client.addProperty("Message", "Watse");
//client.addProperty("CityName", "Pretoria");
//client.addProperty("CountryName", "South Africa");
//client.addProperty("myString", "hello");
client.addProperty("FromCurrency", in1);
client.addProperty("ToCurrency", in2);
HttpTransport ht = new HttpTransport(url, nameSpace);
try {
stringBuffer.append(ht.call(client));
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e);
e.printStackTrace();
System.out.println(client.getNamespace());
}
stringItem.setText(stringBuffer.toString());
System.out.println(stringBuffer);
}
/*
* (non-Javadoc)
*
* @see
javax.microedition.lcdui.CommandListener#commandAction(javax.microedition.lcdui.Command,
* javax.microedition.lcdui.Displayable)
*/
public void commandAction(Command command, Displayable arg1) {
if (command == sendCommand) {
Thread t = new Thread() {
String input1 = textField1.getString();
String input2 = textField2.getString();
public void run() {
try {
doInvoke(input1,
input2);
} catch (Exception e) {
e.printStackTrace();
}
}
};
t.start();
} else if (command == backCommand) {
display.setCurrent(form1);
}
else if (command == exitCommand) {
try {
destroyApp(false);
notifyDestroyed();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
MailScanner thanks transtec Computers for their support.
managed to communicate with several online webservice providers
including http://www.xmethods.net/ and http://www.google.com/apis/ . I
managed to do this using the small footprint SOAP package kSOAP
http://ksoap.enhydra.org/ or http://www.ksoap.org/ .Here is a copy of
the template java midlet that I use to communicate to web-services
with:
Template.java
import java.io.IOException;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.ImageItem;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import org.ksoap.SoapObject;
import org.ksoap.transport.HttpTransport;
/**
* @author Yusuf
*
*/
public class Template extends MIDlet implements CommandListener {
private Display display;
private String url = "";
private String nameSpace = "";
private String name = "";
private String key = "";
private Command sendCommand;
private Command exitCommand;
private Command backCommand;
private StringItem stringItem;
private Form form1;
private TextField textField1, textField2;
private String choice;
private ImageItem background;
public Template() {
display = Display.getDisplay(this);
stringItem = new StringItem("", "");
textField1 = new TextField("Input 1:", choice, 30,
TextField.ANY);
textField2 = new TextField("Input 2:", choice, 30,
TextField.ANY);
exitCommand = new Command("Exit", Command.EXIT, 1);
sendCommand = new Command("Invoke", Command.SCREEN, 1);
backCommand = new Command("Back", Command.BACK, 1);
background = new ImageItem("", null,
ImageItem.LAYOUT_CENTER, "no pic");
// TODO Auto-generated constructor stub
}
/*
* (non-Javadoc)
*
* @see javax.microedition.midlet.MIDlet#startApp()
*/
protected void startApp() throws MIDletStateChangeException {
form1 = new Form("Webservices");
try {
//background.setImage(Image.createImage("/google.png"));
url = getAppProperty("URL");
nameSpace = getAppProperty("NAMESPACE");
name = getAppProperty("NAME");
key = getAppProperty("KEY");
//form1.append(background);
form1.append(textField1);
form1.append(textField2);
form1.append(stringItem);
form1.addCommand(sendCommand);
form1.addCommand(exitCommand);
form1.setCommandListener((CommandListener)
this);
display.setCurrent(form1);
// TODO Auto-generated method stub
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e);
e.printStackTrace();
}
}
/*
* (non-Javadoc)
*
* @see javax.microedition.midlet.MIDlet#pauseApp()
*/
protected void pauseApp() {
// TODO Auto-generated method stub
}
/*
* (non-Javadoc)
*
* @see javax.microedition.midlet.MIDlet#destroyApp(boolean)
*/
protected void destroyApp(boolean arg0) throws
MIDletStateChangeException {
// TODO Auto-generated method stub
}
public void doInvoke(String in1, String in2) throws Exception {
StringBuffer stringBuffer = new StringBuffer();
TextBox textBox = null;
SoapObject client = new SoapObject(nameSpace, name);
//client.addProperty("LKEY", "0");
//client.addProperty("FromName", "Yusuf");
//client.addProperty("ToUserID",
"yusufk18@hotmail.com");
//client.addProperty("Message", "Watse");
//client.addProperty("CityName", "Pretoria");
//client.addProperty("CountryName", "South Africa");
//client.addProperty("myString", "hello");
client.addProperty("FromCurrency", in1);
client.addProperty("ToCurrency", in2);
HttpTransport ht = new HttpTransport(url, nameSpace);
try {
stringBuffer.append(ht.call(client));
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e);
e.printStackTrace();
System.out.println(client.getNamespace());
}
stringItem.setText(stringBuffer.toString());
System.out.println(stringBuffer);
}
/*
* (non-Javadoc)
*
* @see
javax.microedition.lcdui.CommandListener#commandAction(javax.microedition.lcdui.Command,
* javax.microedition.lcdui.Displayable)
*/
public void commandAction(Command command, Displayable arg1) {
if (command == sendCommand) {
Thread t = new Thread() {
String input1 = textField1.getString();
String input2 = textField2.getString();
public void run() {
try {
doInvoke(input1,
input2);
} catch (Exception e) {
e.printStackTrace();
}
}
};
t.start();
} else if (command == backCommand) {
display.setCurrent(form1);
}
else if (command == exitCommand) {
try {
destroyApp(false);
notifyDestroyed();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
MailScanner thanks transtec Computers for their support.
Monday, September 20, 2004
Wednesday, September 15, 2004
I blog, therefore I am...
Although I had planned to blog everything I learnt, it didn't happen. Partly because I've learnt too many little things to blog. I finally settled for using JSP's to create the UI. I created a lower layer of Javabeans, which the JSP's talk to, which in turn talk to the mySQL database. If I think of anything worth blogging in retrospect I will, because I am..
I blog, therefore I am...
Although I had planned to blog everything I learnt, it didn't happen. Partly because I've learnt too many little things to blog. I finally settled for using JSP's to create the UI. I created a lower layer of Javabeans, which the JSP's talk to, which in turn talk to the mySQL database. If I think of anything worth blogging in retrospect I will, because I am..
Thursday, July 15, 2004
J2ME and JSP advances
I've managed to get a stable development environment going using:
Tomcat 5.0
Eclipse 3.0 RC1
Plugins:
eclipseme-0.4.5
net.sf.solareclipse_0.4.0.bin.dist.zip NOT 0.4.1 (cant save JSPs)
tomcatPluginV3beta.zip
Works like a charm!
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
MailScanner thanks transtec Computers for their support.
Tomcat 5.0
Eclipse 3.0 RC1
Plugins:
eclipseme-0.4.5
net.sf.solareclipse_0.4.0.bin.dist.zip NOT 0.4.1 (cant save JSPs)
tomcatPluginV3beta.zip
Works like a charm!
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
MailScanner thanks transtec Computers for their support.
I've been looking for this FOREVER, knew that it had to exist somewhere!
Nokia Flash Reverse Electronic Engineering - Tips and tricks for your symbians!: "To reset your wallet, should you forget your code,
Type in:
*#7370925538#"
Type in:
*#7370925538#"
J2ME and JSP advances
I've managed to get a stable development environment going using:
Tomcat 5.0
Eclipse 3.0 RC1
Plugins:
eclipseme-0.4.5
net.sf.solareclipse_0.4.0.bin.dist.zip NOT 0.4.1 (cant save JSPs)
tomcatPluginV3beta.zip
Works like a charm!
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
MailScanner thanks transtec Computers for their support.
Tomcat 5.0
Eclipse 3.0 RC1
Plugins:
eclipseme-0.4.5
net.sf.solareclipse_0.4.0.bin.dist.zip NOT 0.4.1 (cant save JSPs)
tomcatPluginV3beta.zip
Works like a charm!
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
MailScanner thanks transtec Computers for their support.
I've been looking for this FOREVER, knew that it had to exist somewhere!
Nokia Flash Reverse Electronic Engineering - Tips and tricks for your symbians!: "To reset your wallet, should you forget your code,
Type in:
*#7370925538#"
Type in:
*#7370925538#"
Subscribe to:
Posts (Atom)




