h2.  The following instructions are written using Eclipse 3.2. We will refer to the install location of OpenEJB as OPENEJB_HOME Here are some basic steps you need to perform to get started with OpenEJB # Download and install OpenEJB # Setup your development environment # Write an EJB # Write an EJB client # Start the server # Deploy the EJB # Run the client # Stop the server {quote} {quote} h2.  1. Download and Install OpenEJB Follow these [instructions|http://cwiki.apache.org/confluence/display/OPENEJB/Quickstart] h2.  2. Setup your development environment h3.  Eclipse # Open eclipse and create a new java project. Name it EJBProject # Add the following jars to the build path of your project ## OPENEJB_HOME/lib/geronimo-ejb_3.0_spec-1.0.jar # Now create another project named EJBClient. This is where we will write a test client # Add the following jars to the build path of this project ## OPENEJB_HOME/lib/openejb-client-3.0.0-SNAPSHOT.jar # Add the EJBProject to the classpath of the EJBClient project h2.  3. Start the Server Open the command prompt and run the following command: {noformat} d:\openejb-3.0.0-SNAPSHOT\bin\openejb start {noformat} You will get the following message on the console: {noformat} 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! {noformat} h2.  4. Write an EJB In the EJB project create a new interface named Greeting {code} package com.myejbs; import javax.ejb.Remote; @Remote public interface Greeting { public String greet(); } {code} Now create a new class named GreetingBean which implements the above interface (shown below) {code} package com.myejbs; import javax.ejb.Stateless; @Stateless public class GreetingBean implements Greeting { public String greet() { return "My First Remote Stateless Session Bean"; } } {code} h2.   5. Deploy the EJB # Export the EJBProject as a jar file. Name it greeting.jar and put it in the OPENEJB_HOME/apps directory. # Open the command prompt and type in the following command: {noformat} d:\openejb-3.0.0-SNAPSHOT > bin\openejb deploy apps\greeting.jar {noformat} This should give you the following output: {noformat} 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=GreetingBeanRemote) {noformat} {color:#330000}{*}Notice the Jndi(name=GreetingBeanRemote) information. Keep this handy as this is the JNDI name of the bean which the client will use for lookup{*}{color} h2.  6. Write the Client In the EJBClient project, create a class named Client (shown below) {code} package com.myclient; import com.myejbs.Greeting; import javax.naming.InitialContext; import java.util.Properties; 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", "ejbd://127.0.0.1:4201"); InitialContext ctx = new InitialContext(p); Greeting greeter = (Greeting) ctx.lookup("GreetingBeanRemote"); String message = greeter.greet(); System.out.println(message); } catch (Exception e) { e.printStackTrace(); } } } {code} h2.  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: {noformat} My First Remote Stateless Session Bean {noformat} h2.  8. Stop the server There are two ways to stop the server: # You can press Ctrl+c on the command prompt to stop the server # On the command prompt type in the following command: {noformat} D:\openejb-3.0.0-SNAPSHOT>bin\openejb stop {noformat}