| = Getting Started | |
| :index-group: OpenEJB Standalone Server | |
| :jbake-date: 2018-12-05 | |
| :jbake-type: page | |
| :jbake-status: published | |
| == The following instructions are written using Eclipse 3.2. | |
| We will refer to the installation location of OpenEJB as OPENEJB_HOME | |
| Here are some basic steps you need to perform to get started with | |
| OpenEJB 1. Download and install OpenEJB 1. Setup your development | |
| environment 1. Write an EJB 1. Write an EJB client 1. Start the server | |
| 1. Deploy the EJB 1. Run the client 1. Stop the server | |
| == 1. Download and Install OpenEJB | |
| Follow | |
| these https://cwiki.apache.org/confluence/display/OPENEJB/Quickstart[instructions] | |
| == 2. Setup your development environment | |
| === 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 | |
| == 3. Start the Server | |
| Open the command prompt and run the following command: | |
| [source,java] | |
| ---- | |
| d:\openejb-3.0.0-SNAPSHOT\bin\openejb start | |
| ---- | |
| You will get the following message on the console: | |
| [source,java] | |
| ---- | |
| D:\openejb-3.0.0-SNAPSHOT>bin\openejb start | |
| Apache OpenEJB 3.0.0-SNAPSHOT build: 20070830-07:53 | |
| http://tomee.apache.org/ | |
| OpenEJB ready. | |
| OpenEJB Remote Server | |
| ** Starting Services ** | |
| NAME IP PORT | |
| 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 | |
| [source,java] | |
| ---- | |
| package com.myejbs; | |
| import jakarta.ejb.Remote; | |
| @Remote | |
| public interface Greeting { | |
| public String greet(); | |
| } | |
| ---- | |
| Now create a new class named GreetingBean which implements the above | |
| interface (shown below) | |
| [source,java] | |
| ---- | |
| package com.myejbs; | |
| import jakarta.ejb.Stateless; | |
| @Stateless | |
| public class GreetingBean implements Greeting { | |
| public String greet() { | |
| return "My First Remote Stateless Session Bean"; | |
| } | |
| } | |
| ---- | |
| == 5. Deploy the EJB | |
| [arabic] | |
| . 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: | |
| + | |
| d:-3.0.0-SNAPSHOT > bindeploy apps.jar | |
| This should give you the following output: | |
| [source,java] | |
| ---- | |
| 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) | |
| ---- | |
| _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_ | |
| == 6. Write the Client | |
| In the EJBClient project, create a class named Client (shown below) | |
| [source,java] | |
| ---- | |
| 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(); | |
| } | |
| } | |
| } | |
| ---- | |
| == 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: | |
| [source,properties] | |
| ---- | |
| 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 1. On the command prompt type in the | |
| following command: | |
| [source,java] | |
| ---- | |
| D:\openejb-3.0.0-SNAPSHOT>bin\openejb stop | |
| ---- | |
| The stop request carries the secret the server writes to | |
| `conf/admin-shutdown.secret` at startup. To stop a server from another | |
| machine, pass it with `bin/openejb stop -h <host> -s <secret>` or set a | |
| fixed one on both sides with `-Dopenejb.admin.shutdown.secret=<secret>`. |