This tutorial walks you through configuring, developing and deploying an enterprise application with Eclipse and Geronimo. To run this tutorial, as a minimum you will be required to have installed the following prerequisite software.
- Sun JDK 6.0+ (J2SE 1.6)
- Eclipse IDE for Java EE Developers, which is platform specific
- Apache Geronimo Eclipse Plugin 2.1.x
- Apache Geronimo Server 2.1.x
Geronimo version 2.1.x, Java 1.5 runtime, and Eclipse Ganymede are used in this tutorial but other versions can be used instead (e.g., Geronimo version 2.2, Java 1.6, Eclipse Europa)
Details on installing eclipse are provided in the Development environment section. This tutorial is organized in the following sections:
Let us briefly understand this application. This application will take you through creating a simple Stateless Session EJB. Later we will develop a Java Application client to access this EJB. EJB development will make use of annotations which are introduced in Java EE5.
Setting up Eclipse IDE for EJB application development
- Launch Eclipse and select Window -> Open Perspective -> Other --> JavaEE and select OK
This completes the setting of Eclispe IDE for EJB application development.
Developing EJB local interface, EJB remote interface and Bean class
- Right click on the ejb package and create a new Remote Interface CountryCapital as shown in the figure:
- Enter the fields as shown in the figure and select Finish.
- Add the following code as shown below
- Similarly create a Local interface CountryCapitalLocal. Add the following code to the interface.
Similarly in this code we have @Local annotation which declares this interface as local.
In the Remote as well as the Local interface we have the declaration for only one Business method. So only this method will be visible to the application client. Methods other than capitalName, if implemented in the Bean class, will be private to the Bean class and will not be visible to application client.
- The next step is to create a Bean class which will implement the Business method to be executed. Right click on the ejb package and create a new class.
- Enter the class name as CountryCapitalBean.
- Populate the bean class with the code as follows
This completes the development of EJB application.
Developing a Java Client
- Select File -> New -> Project -> JavaEE -> Application Client Project. Select Next.
- In the New Project Window give the Project name as ApplicationClient and select Next.
- On the Java Settings window. Select the Projects tab and click Add.
- Check the box for SimpleEJB and select OK.
- This will add the SimpleEJB project to the build path of the Application Client as shown in the figure. Select Finish.
Why did we add the EJB project to build path ??
This is because the build path is used to find the classes referenced by your Application Client source code, and these classes will be required for compilation of Application Client source code.
- Right click on ApplicationClient project and create a new Java Class as shown in the following figure:
- Give the package name as appclient and the class name as ApplicationClient. Select Finish.
- Populate the
ApplicationClient.javaclass with the following code:
Let us try to understand following code snippet:
The above code suggests that which InitialContextFactory to be used to create the InitialContext. Here we are using
org.apache.openejb.client.RemoteInitialContextFactoryto create the InitialContext. In this case as the EJB server is the naming service provider and has naming service runnning at Port 4201. So we need to specify the location of the EJB server. In this case it is
ejbd://localhost:4201. Once this is done we have the context that provides us the ability to lookup and get objects.
Why is the lookup name CountryCapitalBeanRemote ??
This will be discussed in deploy and run section.
- The next step is to add
org.apache.openejb.client.RemoteInitialContextFactoryclass to the build path. This is because the application client needs this class to create the InitialContext as explained above.
- Right click on ApplicationClient project under Project Explorer. Select Properties.
- Select Java Build Path. Under Java Build Path select Libraries -> Add External JARs.
- Browse to
<GERONIMO_HOME>\repository\org\apache\openejb\openejb-client\3.0and select the jar openejb-client-3.0.jar. Select OK.
This completes the Application Client Development.
Deploy and run
This section will take you through the deployment of the EJB application. Later we will run the application client with some sample inputs.
- Right click on the Geronimo server in the Java EE perspective and select Add and Remove Projects....
- There should be one deployable project in your workspace. Select Add All >> and then select Finish.
- Once the deployment is successful open
<GERONIMO_HOME>/var/log/geronimo.logand find the following: The OpenEJB container is now aware of both the Remote as well as the Local lookup names. In this tutorial the SimpleEJB application and Java Application Client are running under different JVM instances, so we need to have the CountryCapitalBeanRemote as the lookup name for remote access.
- Under Eclipse Right click on the Application Client project and Run as a Java Application.
Sample Input #1: India
Sample Input #2: China
Sample Input #3: United States Of America
Sample Input #4: France