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.
Subscribe to:
Posts (Atom)