Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

Wiki Markup
{snippet:url=openejb3/examples/injection-of-ejbs/README.txt}

The Code

In this example we develop two simple session stateless beans (DataReader and DataStore), and show how we can use the @EJB annotation in one of these beans to get the reference to the other session bean

DataStore session bean

Local business interface
Wiki Markup
{snippet:id=code|url=openejb3/examples/injection-of-ejbs/src/main/java/org/superbiz/injection/DataStoreLocal.java|lang=java}
Remote business interface
Wiki Markup
{snippet:id=code|url=openejb3/examples/injection-of-ejbs/src/main/java/org/superbiz/injection/DataStoreRemote.java|lang=java}
Bean
Wiki Markup
{snippet:id=code|url=openejb3/examples/injection-of-ejbs/src/main/java/org/superbiz/injection/DataStoreImpl.java|lang=java}

DataReader session bean

Local business interface
Wiki Markup
{snippet:id=code|url=openejb3/examples/injection-of-ejbs/src/main/java/org/superbiz/injection/DataReaderLocal.java|lang=java}
Bean
Wiki Markup
{snippet:id=code|url=openejb3/examples/injection-of-ejbs/src/main/java/org/superbiz/injection/DataReaderImpl.java|lang=java}

...

Tip
title@EJB annotation

You can use the @EJB annotation to refer a session bean in other components specified by the Java EE platform, for instance:

  • Servlets
  • ServletContextListeners
  • Servlet Filters
  • JSF managed beans
  • EJB interceptors
  • JAX-WS service endpoints

Writing a unit test for the example

Writing an unit test for this example is quite simple. We need just to write a setup method to create and initialize the InitialContext, and then write our test methods

setUp

Wiki Markup
{snippet:id=setup|url=openejb3/examples/injection-of-ejbs/src/test/java/org/superbiz/injection/EjbDependencyTest.java|lang=java}

Test

Wiki Markup
{snippet:id=test|url=openejb3/examples/injection-of-ejbs/src/test/java/org/superbiz/injection/EjbDependencyTest.java|lang=java}

Running

Running the example is fairly simple, just run:

...