We will create a small EJB application and we have two way to solve the communication from the mobile phone.
Contents |
The appliaction wait for a string and send an answer: "Hello $string!"
package com.nokia.forum.wiki;
import javax.ejb.Stateless;
import javax.jws.WebService;
@Stateless()
@WebService
public class Hello
{
public String getHello(String name)
{
return "Hello " + name + "!";
}
}
If the target phone support the WSA we only need to import the WSDL file from the server and the NetBeans wizard will create a sample application to us.
Steps:
If the target phone doesn't support the WSA feature we need to use some alternative way, like kSOAP2. We can't use the benefits of the WSDL and we need edit manually the soap message.
Don't forget to add the libs of the kSOAP2 to the project!
package helloworld;
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransport;
public class HelloWorldMidlet extends MIDlet implements CommandListener {
public HelloWorldMidlet() {
}
// Display
private Display display;
// Main form
private Form form;
// For the message
private StringItem stringItem;
// For the exit command
private Command exitCommand;
public void commandAction(Command command, Displayable displayable) {
if (displayable == form) {
if (command == exitCommand) {
exitMIDlet();
}
}
}
public void startApp() {
// Create form
stringItem = new StringItem("Hello", "Hello World!");
form = new Form(null, new Item[] {stringItem});
exitCommand = new Command("Exit", Command.EXIT, 1);
form.addCommand(exitCommand);
form.setCommandListener(this);
// Get display for drawning
display = Display.getDisplay(this);
display.setCurrent(form);
soapCall();
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void exitMIDlet() {
display.setCurrent(null);
destroyApp(true);
notifyDestroyed();
}
public void soapCall() {
SoapSerializationEnvelope soapEnvelope =
new SoapSerializationEnvelope(SoapEnvelope.VER11);
// Create your outgoing request
SoapObject soapObject =
new SoapObject("http://wiki.forum.nokia.com/", "getHello");
// Add a parameter
soapObject.addProperty("arg0", "Tibor");
// Assigns the object to the envelope
soapEnvelope.setOutputSoapObject(soapObject);
// Make the call
try {
HttpTransport transport =
new HttpTransport("http://localhost:8080/HelloService/Hello");
transport.call(null , soapEnvelope);
Object responseObject = null;
responseObject = soapEnvelope.getResponse();
System.out.println(responseObject);
stringItem.setText(responseObject.toString());
}
catch (Exception e){
System.out.println("Exception : "+ e.getMessage());
e.printStackTrace();
}
}
}
No related wiki articles found