Child pages
  • mytime - Very Simple Session EJB Example
Skip to end of metadata
Go to start of metadata

The Time Bean Example

This is a very simple example of a JSP-page calling a Session Bean. The result looks like this:
The primary purpose of the example is to provide a very simple demonstration of an EJB session bean. It is not intended to be a complete example or one that could be used as a template for creating your own EJB session bean. This is an example using Geronimo 2.1, Java 1.5 and EJB 3.0.

Application Contents is an EJB that can tell time. The EJB is in the package org.apache.geronimo.samples.mytimepak. By using the @Stateless annotation Geronimo will recognize that this is a stateless session bean. There is no need for a ejb-jar.xml. is the Local interface. As this EJB will only be used from a JSP-page that is running in the same server (same JVM) I use a Local interface that do not make use of the network.

index.jsp utilizes the MyTimeBean to tell time.

javasolidindex.jsp <%@ page import="org.apache.geronimo.samples.mytimepak.MyTimeLocal" %> Time <% String s = "-"; // Just declare a string try { // This creates a context, it can be used to lookup EJBs. Using normal RMI you would // have to know port number and stuff. The InitialContext holds info like // server names, ports and stuff I guess. Context context = new InitialContext(); // MyTimeLocalHome is a reference to the EJB MyTimeLocal myTimeLocal = (MyTimeLocal) context.lookup("java:comp/env/ejb/MyTimeBean"); // So, just go ahead and call a method (in this case the only method). s = myTimeLocal.getTime(); } catch (Exception e) { s = e.toString(); } %> This is the time returned from the EJB: <%=s%> ]]>

geronimo-web.xml specifies the module's information and the url for the web-app.

xmlgeronimo-web.xml ${pom.groupId} ${pom.artifactId} ${version} war /mytime ]]>

web.xml references the EJB present in the WEB-INF/classes/org/apache/geronimo/samples/mytimepak directory.

xmlweb.xml MyTimeWeb index.jsp ejb/MyTimeBean Session org.apache.geronimo.samples.mytimepak.MyTimeLocal ]]>

Deployment Plan for the Application

plan.xml is generated by building the sample and can be found under ./mytime-jetty/target/resources/META-INF/plan.xml to deploy on jetty or ./mytime-tomcat/target/resources/META-INF/plan.xml to deploy on tomcat following a successful build of the sample. Shown below is the deployment plan for tomcat.

xmlsolidplan.xml org.apache.geronimo.samples mytime-tomcat 2.1-SNAPSHOT car org.apache.geronimo.configs jasper 2.1 car org.apache.geronimo.configs tomcat6 2.1 car org.apache.geronimo.configs openejb 2.1 car ]]>

Building, Configuring, and Deploying the application

Source Code for Sample

Please reference Samples General Information for information on obtaining and building the source for this and other samples.


Use a command prompt to navigate into the mytime directory and just give mvn clean install site command to build. It will create the mytime-ear-2.1-SNAPSHOT.ear under the mytime folder. Now, you are ready to deploy mytime application in the Geronimo Application server using either the plugins generated for tomcat and jetty or the deployment plan that was generated and the ear.

Deploying the Application

Deploying sample application is pretty straight forward as we are going to use the Geronimo Console.

  1. Scroll down to Deploy New from the Console Navigation panel.
  2. Load mytime-ear-2.1-SNAPSHOT.ear from mytime folder in to the Archive input box.
  3. Load plan.xml from ./mytime-jetty/target/resources/META-INF/ or ./mytime-tomcat/target/resources/META-INF/ depending on the target server (jetty or tomcat).
  4. Press Install button to deploy application in the server.

MyTime Web Application

To test the sample web application open a browser and type http://localhost:8080/mytime.

  • No labels