This project is a modular Jakarta EE 10 enterprise application developed using Maven. It follows the standard multi-module EAR structure, including:
coreβ Shared model classes.ejbβ Stateless session beans exposing business logic via remote interfaces.webβ Servlet-based front-end consuming EJBs.earβ EAR module that packages all components into a deployable archive.
JIAT-EAR/
βββ core/ # Contains entity classes (like Product)
βββ ejb/ # EJB module with business logic
βββ web/ # WAR module with servlets
βββ ear/ # EAR packaging module
- Provides serializable model classes shared across the application.
- Example class:
Product.java
- Contains a stateless EJB
ProductSessionBeanimplementing theProductServiceremote interface. - Performs operations like:
- Get product by ID
- Get all products
- Add/update/delete product (currently empty implementations)
- Provides a servlet
Home.javathat connects to theProductServiceEJB. - Displays a simple HTML response using servlet API.
- Packages the entire application using the
maven-ear-plugin. - Includes
core.jar,ejb.jar, andweb.war.
- Jakarta EE 10
- Maven
- GlassFish 7 / Payara / WildFly (Jakarta EE compatible servers)
- Java 11
- Servlets & EJB (Stateless Beans)
-
Build all modules using:
mvn clean install
-
Deploy the EAR file (
ear/target/ee-ear.ear) to a Jakarta EE compatible application server like:- GlassFish 7.x
- Payara 6.x
- WildFly 28+
-
Access the application:
http://localhost:8080/ee-app/home
- Connect EJB to a real database using JPA and persistence.xml.
- Implement full CRUD operations in
ProductSessionBean. - Improve the front-end using JSP/JSF or modern frontend frameworks.
- Add authentication and authorization using Jakarta Security.
This project is licensed under the MIT License.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Chamika Gayashan
Undergraduate Software Engineer | Sri Lanka
Linkedin: @chamikathereal
