blob: 7ca6032063214c717e220ea0b1ae6651d7134b54 [file] [log] [blame]
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}