Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 08:54, 25 September 2007.

Make EJB client in Java ME

From Forum Nokia Wiki


We will create a small EJB application and we have two way to solve the communication from the mobile phone.

Contents

EJB application

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 + "!";
    }
}

Easy way with WSA and NetBeans

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:

  • Create a new Mobile Application
  • Right click on the project / New / J2ME Web Service Client
  • Write the URL to the WSDL URL box and click on the Retrieve WSDL button
  • Check on the Create Sample MIDLet and click on the Finish

Image:nbhw1.pngImage:nbhw2.pngImage:nbhw3.png

Other way without WSA

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!

Image:soap1.pngImage:soap2.png

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();
    	}            
    }    
}

Usefull links

kSOAP2

NetBeans

Related Discussions
Thread Thread Starter Forum Replies Last Post
Help ... Connection from PC to 6600 using JSR82 problem... jim226 Bluetooth Technology 3 2004-05-18 11:29
how to pass values from an exe to sis file sulabh120881 General Symbian C++ 9 2007-05-21 08:31
Bluetooth connection questions calvin.cal Mobile Java Networking & Messaging & Security 6 2007-02-14 08:12
Help! Can't send sms out n_kit Mobile Java Networking & Messaging & Security 4 2006-03-31 07:51
MMS Client kpollefo General Messaging 1 2003-02-14 04:42
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtopicQUqfnTopicZenterpriseQ
     qfnZtopicQUqfnTopicZjavaQ
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX