Apache OpenEJB
Apache OpenEJB is an open-source (application server / Java middleware) project that provides an embeddable, lightweight Enterprise JavaBeans (EJB) container and forms the EJB core of the Apache TomEE Java EE/Jakarta EE application server.
- Embeddable EJB container for running Enterprise JavaBeans (application server / Java middleware).
- Core EJB engine integrated into Apache TomEE for Java EE/Jakarta EE support (application server).
- Supports EJB session beans, message-driven beans, and related services such as transactions and security (enterprise application runtime).
- Designed for embedding in applications, test frameworks, and standalone services to run EJB components without a full application server (developer tooling / embedded runtime).
- Distributed under the Apache License 2.0 and maintained under The Apache Software Foundation governance model (open-source governance).
More About Apache OpenEJB
Apache OpenEJB is an open-source (application server / Java middleware) project focused on providing a lightweight, embeddable Enterprise JavaBeans (EJB) container. It operates as the EJB core within Apache TomEE, which is a Java EE and Jakarta EE application server stack built on top of Apache Tomcat. OpenEJB enables the execution of EJB components in environments that do not require or do not use a full traditional Java EE server installation.
The project delivers an EJB container (enterprise application runtime) that supports common EJB component types such as session beans and message-driven beans. Through this container, it exposes services typically associated with EJB, including transactions, security, and resource management. By focusing on the EJB subset, OpenEJB serves as a modular runtime that can be embedded into other Java applications, testing frameworks, or integration stacks where EJB functionality is required without additional platform layers.
In the context of Apache TomEE, OpenEJB functions as the internal EJB engine (application server component), supplying the container behavior that implements the EJB portions of the Java EE and Jakarta EE specifications. TomEE combines OpenEJB with Tomcat and other related components to provide a broader application server platform. OpenEJB’s role is to handle EJB lifecycle, deployment, lookup, and interaction with managed resources such as datasources and messaging systems, in alignment with the EJB specification that TomEE targets.
Enterprises use OpenEJB in two main ways: indirectly, when deploying applications onto Apache TomEE, and directly, when embedding the OpenEJB container into custom applications or test harnesses (developer tooling / embedded runtime). In embedded mode, developers can start an EJB container programmatically within unit or integration tests to validate business components with services like transactions and security active, but without operating an external application server process. This approach supports modular architectures where EJBs are part of a larger Java system but the runtime environment is tailored or minimal.
From an interoperability and ecosystem standpoint, OpenEJB interacts with standard Java EE and Jakarta EE technologies (enterprise application platform), particularly where EJB, JPA, JMS, and related APIs are present through the larger TomEE stack. Its integration within Apache TomEE allows it to participate in a standards-based environment with servlet containers, web services stacks, and persistence providers. The project follows The Apache Software Foundation’s licensing and governance practices, using the Apache License 2.0 (open-source licensing), which enables reuse and embedding within commercial and open-source solutions.
Within a technical directory or taxonomy, Apache OpenEJB aligns with categories such as Java EJB container, Java middleware, and application server components. It provides an embeddable EJB runtime suitable for enterprise Java workloads, and it underpins the EJB capabilities of Apache TomEE deployments in production, development, and testing scenarios.