Jakarta EE Platform

Loading concept...

Jakarta EE Platform: Your First Adventure into Enterprise Java

The Big Picture: What’s This All About?

Imagine you want to build a huge LEGO city — with hospitals, schools, shops, and roads. Building it alone would take forever! What if you had a special LEGO kit that came with pre-made buildings you could just snap together?

Jakarta EE is exactly that — a ready-made toolkit for building big, powerful web applications!

Instead of writing everything from scratch, you get a box of pre-built pieces that work together perfectly.


1. What is Jakarta EE?

The Simple Story

Think of Jakarta EE like a restaurant kitchen.

When a chef opens a restaurant, they don’t build their own stove, refrigerator, or sink. They use standard kitchen equipment that works the same way everywhere.

Jakarta EE gives programmers standard tools that work the same way everywhere. No matter which “kitchen” (server) you use, your code works!

What Does It Stand For?

  • Jakarta = The name (like calling your pet “Max”)
  • EE = Enterprise Edition (for big, serious applications)

Before Jakarta EE…

It was called Java EE (owned by Oracle). In 2017, it moved to a new home called the Eclipse Foundation and got renamed Jakarta EE.

Same toolkit, new name!

Real Life Example

Without Jakarta EE:
- Build your own login system
- Build your own database connector
- Build your own web forms
- Write 10,000 lines of code

With Jakarta EE:
- Use ready-made login (@RolesAllowed)
- Use ready-made database connector (JPA)
- Use ready-made web forms (JSF)
- Write 100 lines of code!

2. Jakarta EE 10 Overview

What’s Special About Version 10?

Jakarta EE 10 is like getting the newest smartphone — faster, easier, and with cool new features!

Released in 2022, it’s the latest major version with improvements that make coding simpler.

Key Changes in Jakarta EE 10

graph TD A["Jakarta EE 10"] --> B["Java 11 or 17"] A --> C["Core Profile - NEW!"] A --> D["Simplified Code"] A --> E["Cloud Ready"] style A fill:#667eea,color:#fff style C fill:#4CAF50,color:#fff
Feature What It Means
Java 11/17 Required Uses modern Java features
Core Profile New lightweight option for microservices
CDI Lite Simpler dependency injection
Security Updates Better protection built-in

Simple Example

Old way (before EE 10):

@Stateless
@LocalBean
public class HelloService {
    public String sayHello() {
        return "Hello!";
    }
}

New way (EE 10):

@ApplicationScoped
public class HelloService {
    public String sayHello() {
        return "Hello!";
    }
}

Less code, same result!


3. Jakarta EE Profiles

The Menu Analogy

Imagine a restaurant with three menu sizes:

  • Full Menu = Everything they serve (100 dishes)
  • Regular Menu = Popular items (30 dishes)
  • Light Menu = Quick bites (10 dishes)

Jakarta EE Profiles work the same way!

The Three Profiles

graph TD A["Jakarta EE Profiles"] --> B["Full Platform"] A --> C["Web Profile"] A --> D["Core Profile"] B --> B1["Everything included"] B --> B2["Big enterprise apps"] C --> C1["Web essentials"] C --> C2["Most common choice"] D --> D1["Minimal & light"] D --> D2["Microservices"] style A fill:#667eea,color:#fff style B fill:#FF6B6B,color:#fff style C fill:#4ECDC4,color:#fff style D fill:#45B7D1,color:#fff
Profile What’s Included Best For
Full Platform ALL 40+ APIs Banks, hospitals, airlines
Web Profile 15 essential APIs Most web applications
Core Profile 8 core APIs Microservices, cloud apps

Which One Should You Use?

Start with Web Profile! It has everything most apps need:

  • Servlets (handle web requests)
  • JSF (build web pages)
  • JPA (save to database)
  • CDI (connect components)
  • Security (protect your app)

4. Application Architecture

Building a House

Every house has a structure: foundation, walls, roof. Jakarta EE apps have structure too!

The Three-Layer Cake

graph TD A["User clicks button"] --> B["Presentation Layer"] B --> C["Business Layer"] C --> D["Data Layer"] D --> E["Database"] B --> B1["JSF, Servlet, REST"] C --> C1["EJB, CDI Beans"] D --> D1["JPA, JDBC"] style A fill:#FF6B6B,color:#fff style B fill:#4ECDC4,color:#fff style C fill:#667eea,color:#fff style D fill:#45B7D1,color:#fff

Each Layer Explained

1. Presentation Layer (The Face)

  • What users see and click
  • Web pages, buttons, forms
  • Technologies: JSF, Servlet, JAX-RS

2. Business Layer (The Brain)

  • Makes decisions
  • Calculates, validates, processes
  • Technologies: EJB, CDI Beans

3. Data Layer (The Memory)

  • Saves and retrieves information
  • Talks to the database
  • Technologies: JPA, JDBC

Simple Code Example

// Presentation - REST endpoint
@Path("/greet")
public class GreetResource {
    @Inject
    GreetService service;  // Uses CDI

    @GET
    public String greet() {
        return service.sayHello();
    }
}

// Business - The brain
@ApplicationScoped
public class GreetService {
    public String sayHello() {
        return "Welcome to Jakarta EE!";
    }
}

5. Jakarta EE Containers

The Apartment Building

Imagine an apartment building. You don’t build your own:

  • Electricity system
  • Water pipes
  • Heating system

The building provides all of that — you just move in!

A Jakarta EE Container is like that building. It provides:

  • Security
  • Database connections
  • Message handling
  • Transaction management

Types of Containers

graph TD A["Jakarta EE Server"] --> B["Web Container"] A --> C["EJB Container"] A --> D["Application Client Container"] B --> B1["Servlets"] B --> B2["JSP/JSF"] C --> C1["Business Beans"] C --> C2["Transactions"] D --> D1["Desktop Apps"] style A fill:#667eea,color:#fff style B fill:#4ECDC4,color:#fff style C fill:#FF6B6B,color:#fff style D fill:#45B7D1,color:#fff
Container What Lives There What It Provides
Web Container Servlets, JSP, JSF HTTP handling, sessions
EJB Container Business beans Transactions, security
App Client Container Desktop apps Naming, security

The Magic of Containers

// You write simple code:
@Stateless
public class BankService {
    public void transfer(int amount) {
        // Just the logic!
    }
}

// Container automatically adds:
// - Transaction management
// - Security checks
// - Connection pooling
// - Error handling

You focus on YOUR code. Container handles the plumbing!


6. Application Servers

The Power Plant

Your phone needs electricity to work. Where does it come from? A power plant!

Your Jakarta EE app needs an Application Server to run. It’s the power plant for your code!

Popular Application Servers

Server Who Makes It Free? Notes
WildFly Red Hat Yes Very popular, fast
GlassFish Eclipse Yes Reference implementation
Payara Payara Services Yes Based on GlassFish
Open Liberty IBM Yes Lightweight, modern
TomEE Apache Yes Tomcat + EE features

How It Works

graph LR A["Your Code .war file"] --> B["Application Server"] B --> C["Running Application"] B --> D["Web Container"] B --> E["EJB Container"] B --> F["Database Pool"] B --> G["Security"] style A fill:#4ECDC4,color:#fff style B fill:#667eea,color:#fff style C fill:#4CAF50,color:#fff

Deploying Your App

  1. Package your code into a .war file
  2. Drop it into the server’s deploy folder
  3. Server unpacks and runs it
  4. Users access it via browser
# Package your application
mvn package

# Deploy to WildFly
cp myapp.war /opt/wildfly/standalone/deployments/

# Access at:
http://localhost:8080/myapp

Putting It All Together

The Complete Picture

graph TD A["Developer writes code"] --> B["Jakarta EE APIs"] B --> C["Package as WAR"] C --> D["Deploy to App Server"] D --> E["Server provides Containers"] E --> F["Users access via browser"] style A fill:#4ECDC4,color:#fff style B fill:#667eea,color:#fff style D fill:#FF6B6B,color:#fff style F fill:#4CAF50,color:#fff

Quick Recap

Concept Simple Explanation
Jakarta EE Ready-made toolkit for web apps
Jakarta EE 10 Latest version (2022), modern features
Profiles Menu sizes: Full, Web, Core
Architecture 3 layers: Presentation, Business, Data
Containers Apartment building with free utilities
App Servers Power plants that run your app

Your First Jakarta EE App

Here’s a tiny taste of what Jakarta EE code looks like:

// A complete REST API in 15 lines!

@Path("/hello")
@ApplicationScoped
public class HelloResource {

    @GET
    @Produces("text/plain")
    public String sayHello() {
        return "Hello, Jakarta EE!";
    }
}

Deploy this to any application server, and you can visit: http://localhost:8080/myapp/hello

That’s Jakarta EE — powerful, standardized, and surprisingly simple!


What’s Next?

Now that you understand the foundation:

  1. Pick an application server (try WildFly — it’s free and popular)
  2. Choose a profile (start with Web Profile)
  3. Build your first app!

You’ve got the map. Now start the adventure!

Loading story...

Story - Premium Content

Please sign in to view this story and start learning.

Upgrade to Premium to unlock full access to all stories.

Stay Tuned!

Story is coming soon.

Story Preview

Story - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Interactive Preview

Interactive - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Interactive - Premium Content

Please sign in to view this interactive content and start learning.

Upgrade to Premium to unlock full access to all interactive content.

Stay Tuned!

Interactive content is coming soon.

Cheatsheet Preview

Cheatsheet - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Cheatsheet - Premium Content

Please sign in to view this cheatsheet and start learning.

Upgrade to Premium to unlock full access to all cheatsheets.

Stay Tuned!

Cheatsheet is coming soon.

Quiz Preview

Quiz - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Quiz - Premium Content

Please sign in to view this quiz and test your knowledge.

Upgrade to Premium to unlock full access to all quizzes.

Stay Tuned!

Quiz is coming soon.

Flashcard Preview

Flashcard - Premium Content

Please sign in to view this concept and start learning.

Upgrade to Premium to unlock full access to all content.

Flashcard - Premium Content

Please sign in to view flashcards and reinforce your learning.

Upgrade to Premium to unlock full access to all flashcards.

Stay Tuned!

Flashcards are coming soon.