Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 1. Download and Install OpenEJB

Follow these instructions

 2. Setup your development environment

 Eclipse

  1. Open eclipse and create a new java project. Name it EJBProject
  2. Add the following jars to the build path of your project
    1. OPENEJB_HOME/lib/geronimo-ejb_3.0_spec-1.0.jar
  3. Now create another project named EJBClient. This is where we will write a test client
  4. Add the following jars to the build path of this project
    1. OPENEJB_HOME/lib/openejb-client-3.0.0-SNAPSHOT.jar
  5. Add the EJBProject to the classpath of the EJBClient project

 3. Start the Server

Open the command prompt and run the following command:

No Format
d:\openejb-3.0.0-SNAPSHOT\bin\openejb start

You will get the following message on the console:

No Format
D:\openejb-3.0.0-SNAPSHOT>bin\openejb start
Apache OpenEJB 3.0.0-SNAPSHOT    build: 20070830-07:53
http://openejb.apache.org/
OpenEJB ready.
[OPENEJB:init] OpenEJB Remote Server
  ** Starting Services **
  NAME                 IP              PORT
  httpejbd             0.0.0.0         4204
  admin thread         0.0.0.0         4200
  ejbd                 0.0.0.0         4201
  hsql                 0.0.0.0         9001
  telnet               0.0.0.0         4202
-------
Ready!

 4. Write an EJB

In the EJB project create a new interface named Greeting

Code Block
package com.myejbs;

import javax.ejb.Remote;

@Remote
public interface Greeting {
  public String greet();
}

Now create a new class named GreetingBean which implements the above interface (shown below)

Code Block
package com.myejbs;

import javax.ejb.Stateless;

@Stateless
public class GreetingBean implements Greeting {

	public String greet() {
		return "My First Remote Stateless Session Bean";
	}

}

  5. Deploy the EJB

  1. Export the EJBProject as a jar file. Name it greeting.jar and put it in the OPENEJB_HOME/apps directory.
  2. Open the command prompt and type in the following command:
No Format
d:\openejb-3.0.0-SNAPSHOT > bin\openejb deploy apps\greeting.jar

This should give you the following output:

No Format
D:\openejb-3.0.0-SNAPSHOT>bin\openejb deploy apps\greeting.jar

Application deployed successfully at \{0\}

App(id=D:\openejb-3.0.0-SNAPSHOT\apps\greeting.jar)

    EjbJar(id=greeting.jar, path=D:\openejb-3.0.0-SNAPSHOT\apps\greeting.jar)

        Ejb(ejb-name=GreetingBean, id=GreetingBean)

            Jndi(name=GreetingBeanBusinessRemote)

Notice the Jndi(name=GreetingBeanBusinessRemote) information. Keep this handy as this is the JNDI name of the bean which the client will use for lookup

 6. Write the Client

In the EJBClient project, create a class named Client (shown below)

Code Block
package com.myclient;

import java.util.Properties;

import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;

import com.myejbs.Greeting;

public class Client {
	public static void main(String[] args) {

	    try {
	    	Properties p = new Properties();p.put("java.naming.factory.initial", "org.openejb.client.RemoteInitialContextFactory");
	    	p.put("java.naming.provider.url", "127.0.0.1:4201");
			InitialContext ctx = new InitialContext( p );
			Object object = ctx.lookup("GreetingBeanBusinessRemote");
			Greeting greeter = (Greeting) PortableRemoteObject.narrow(object, Greeting.class);
			String message = greeter.greet();
			System.out.println(message);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 7. Run the Client

Open Client.java in eclipse and run it as a java application. You should see the following message in the console view:

No Format
My First Remote Stateless Session Bean

 8. Stop the server

There are two ways to stop the server:

  1. You can press Ctrl+c on the command prompt to stop the server
  2. On the command prompt type in the following command:
    No Format
    D:\openejb-3.0.0-SNAPSHOT>bin\openejb stop