HomeDocumentation > Developer's guide > Tutorials > EJB applications > 5-minute Tutorial on Enterprise Application Development with Eclipse and Geronimo

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 5.0+ (J2SE 1.5)
  • Eclipse 3.3.1.1 (Eclipse Classic package of Europa distribution), which is platform specific
  • Web Tools Platform (WTP) 2.0.1
  • Data Tools Platform (DTP) 1.5.1
  • Eclipse Modeling Framework (EMF) 2.3.1
  • Graphical Editing Framework (GEF) 3.3.1

Details on installing eclipse are provided in the Development environment section. This tutorial is organized in the following sections:

Create Enterprise Application Project

Start from creating an enterprise application project from the eclipse workspace.

  1. Select File -> New, select Project... and in the popup window select select Enterprise Application Project in J2EE category and click Next.
  2. In the EAR Application Project wizard type in SampleEAR as the Project name: and select Apache Geronimo v2.1 in Target Runtime. Leave the rest as it is.



  3. Click Next twice.
  4. In the J2EE Modules to Add to the EAR window select the Generate Deployment Descriptor checkbox and click Next.



  5. In the Geronimo Deployment Plan window enter the values as specified below. To find out more about what these values mean check the Deployment plans section.
    • Group Id: sampleear
    • Artifact Id: sample-ear
    • Version: 1.0
    • Artifact Type: ear



  6. Click Finish.

If asked about changing to the Java EE perspective, click Yes. You may want to select the Remember my decision checkbox to avoid dealing with it in the future.

You should now have the following project structure.


Error message

Don't worry about the error cvc-complex-type.2.4.b: The content of element 'application' is not complete... for now. We'll fix it in the next step when you define an ejb module (and webapp module afterwards).

Create EJB project

The next step is to create an EJB project to hold your EJBs.

  1. Press Ctrl-N, select EJB Project in EJB category and click Next.
  2. In the EJB Project wizard type in SampleEJB as the project name and select Add project to an EAR checkbox. Leave the rest as is and click Next.



  3. Make sure that 5.0 for the Java facet in the Project Facets popup window's selected and click Next.



  4. Unselect the Create an EJB Client JAR module to hold the client interfaces and classes checkbox. We're not interested in it. Click Next.



  5. Fill in the Geronimo Deployment Plan fields with the following values:
    • Group Id: sampleear
    • Artifact Id: sample-ejb
    • Artifact Type: ejb



  6. Click Finish.

You should now have the following project structure.


Important

When workng on versions pervious to Geronimo 2.1.7, remove ejbModule/META-INF/openejb-jar.xml file in the SampleEJB project as it causes deployment issues. See the file highlighted in the image above. However, when using Geronimo 2.1.7, you must include this ejbModule/META-INF/openejb-jar.xml file or else you will encounter NullPointerException error due to a bug issue.

Create Dynamic Web Project

Now that you have EAR and EJB projects created the next step is to create a Dynamic Web project to hold your web application.

  1. Press Ctrl-N, select Dynamic Web Project in Web category and click Next.
  2. In the Dynamic Web Project wizard type in SampleWAR as the project name and select Add project to an EAR checkbox. Leave the rest as is and click Next.



  3. Make sure that 5.0 for the Java facet in the Project Facets popup window's selected and click Next twice.



  4. Fill in the Geronimo Deployment Plan fields with the following values:
    • Group Id: sampleear
    • Artifact Id: sample-war
    • Artifact Type: war



  5. Click Finish.

You should now have the following project structure.


Create Stateless Session EJB

Every stateless session ejb has its own business interface. There are three types of business interfaces - @Remote, @Local and @WebService - and combinations of these three. No need to say that every EJB development starts from defining a business interface and implementing it by a bean implementation class so, that is exactly what we will be doing in the next steps.

Create remote business interface

  1. Right-click on the SampleEJB project and select New -> Interface and fill it in with the following values:
    • Package: sampleear
    • Name: RemoteBusinessInterface



  2. Click Finish.

Now we need to add a business method and mark the interface as a remote one with @Remote annotation.

RemoteBusinessInterface.java

Create bean class

  1. Right-click on the SampleEJB project and select New -> Class and fill it in with the following values:
    • Package: sampleear
    • Name: MyStatelessSessionBean
    • Interfaces: sampleear.RemoteBusinessInterface



  2. Click Finish.

Implement the business method sayHello and mark the class as a stateless session bean with the @Stateless annotation.

MyStatelessSessionBean.java

Web application development

The time has come to use the ejb in the web application. In this section we create a jsp index.jsp page that executes a servlet MyServlet that in turn executes the ejb MyStatelessSessionBean.

Create welcome page - index.jsp

  1. Right-click on the SampleWAR project and select New -> JSP. Name it index.jsp and click Finish.
  2. Change it so it executes the servlet upon form submission.
    index.jsp

Create servlet - MyServlet

Since the servlet calls the EJB, the web project the servlet is in depends on the EJB project. Let's define the dependency.

  1. Right-click on the SampleWAR project and select Properties. Go to J2EE Module Dependencies and select the checkbox next to SampleEJB.jar (it's in the J2EE Modules tab) and click OK.



  2. Right-click on the SampleWAR project and select New -> Servlet and fill it in with the following values:
    • Java Package: sampleear
    • Class name: MyServlet




  3. Click Next.
  4. Change the URL Mapping section so the servlet serves at /sayHello url mapping and click Finish.


MyServlet.java opens up automatically for editing after creation, update the servlet as shown below to call off the ejb when executed.

MyServlet.java

Run it!

All it's left before we test this sample it to deploy it. This task is done automatically for you when you choose to run the application directly from the eclipse workspace.

  1. Right-click on the SampleEAR project and select Run As -> Run on Server. When Run On Server popup window comes up, select the Always use this server when running this project checkbox. Leave the rest as is.



  2. Click Finish.
  3. The server's stopped so nothing happens (from a user's perspective at least). Open up the Servers tab and right-click on Apache Geronimo v2.1 Server at localhost and select Start.
  4. After a few seconds, Geronimo will be up and running with the enterprise application published. Open up the browser of your choice and go to http://localhost:8080/SampleWAR.



  5. Type in any name you want, e.g. John Doe and press Press me! button.