Java EE 7 SDK 

Samples Main Page

The Embeddable API EJB Sample Application (Test Client)

This sample application demonstrates how to use the embeddable EJB container.

Description

The EJB 3.2 Embeddable API Sample Application demonstrates how to use the embeddable EJB container defined in the Enterprise JavaBeans 3.2 specification. You can launch the embeddable EJB container from your code to run tests on EJBs outside of an application server environment.

The sample application consists of two parts: an EJB module and the test client (this project). The rest of this document describes the test client.

The test client uses an embeddable EJB container to test the EJB in an environment that supports the same basic services that would be available in a Java EE runtime: injection, access to a component environment, container-managed transactions, the Java Persistence API, etc.

The client uses the following methods defined in the EJBContainer class in the javax.ejb.embeddable package to create the embeddable EJB container and to look up the stateless session bean from the EJB module in the JNDI:

The EJB module (ejb-embedded.jar) is located in the JVM classpath.

The test client implementation is the following:

public class TestClient {

    private static String appName;

    public static void main(String[] s) throws Exception {
        TestClient t = new TestClient();
        t.test();

    }

    private void test() throws Exception {

        EJBContainer c = null;
        try {
            c = EJBContainer.createEJBContainer();
            Context ic = c.getContext();
            System.out.println("Looking up EJB...");
            SimpleEjb ejb = (SimpleEjb) ic.lookup("java:global/ejb-embedded/SimpleEjb");
            System.out.println("Invoking EJB...");
            System.out.println("Inserting entities...");
            ejb.insert(5);
            System.out.println("JPA count returned: " + ejb.verify());
            System.out.println("Done calling EJB");
        } finally {
            if (c != null) {
                System.out.println("Closing container ...");
                c.close();
                System.out.println("Done Closing container");
            }
        }

        System.out.println("..........FINISHED Embedded test");
    }
}

Key Features

The test client demonstrates the following key features:

Building, Deploying, and Running the Application

Perform the following steps to build, deploy, and run the test client:

  1. Set up your build environment and configure the application server with which the build system has to work by following the common build instructions.
  2. Ensure that the JavaDB database is started. To start JavaDB, run the following command:

    asadmin start-database

  3. This client refers to ejb-embedded-server project as a dependency. If you have not yet installed ejb-embedded-server and its parent, please run the following commands:
  4. app_dir is the sample application base directory: samples_install_dir/javaee7/ejb/ejb-embedded/ejb-embedded-client.
  5. Change directory to app_dir.
  6. Build and run the test client. The goal of exec:exec will start up a JVM to run TestClient class. At this time, the artifact(ejb-embedded.jar) of ejb-embedded-server project will be located in the JVM classpath, and then deployed to the embeddable EJB container.

    mvn clean verify exec:exec

Troubleshooting

If you have problems when running the application, refer to the troubleshooting document.



Copyright © 1997-2013 Oracle and/or its affiliates. All rights reserved.