The quickstarts demonstrate Jakarta EE 8 and a few additional technologies from the Red Hat JBoss Enterprise Application Platform stack. They provide small, specific, working examples that can be used as a reference for your own project.

1. Introduction

These quickstarts run on Red Hat JBoss Enterprise Application Platform 7.3. Each quickstart folder contains a README.html file that describes the quickstart features and provides instructions about how to build and run it.

We recommend that you use the Red Hat JBoss Enterprise Application Platform 7.3 Quickstarts ZIP file, which you can download from the JBoss EAP Software Download page on the Red Hat Customer Portal. This version of the quickstarts uses the correct dependencies and ensures that you test and compile against the correct server runtime environment.

Each quickstart folder contains a README.html file that describes the quickstart features and provides instructions about how to build and run it.

Make sure you read this entire document before you attempt to work with the quickstarts.

2. System Requirements

The applications these projects produce are designed to be run on Red Hat JBoss Enterprise Application Platform 7.3 or later.

All you need to build these projects is Java 8.0 (Java SDK 1.8) or later and Maven 3.3.1 or later.

3. Use of EAP_HOME and QUICKSTART_HOME Variables

The quickstart README files use the replaceable value EAP_HOME to denote the path to the JBoss EAP installation. When you encounter this value in a README file, make sure you replace it with the actual path to your JBoss EAP installation. The installation path is described in detail here: Use of EAP_HOME and JBOSS_HOME Variables

When you see the replaceable variable QUICKSTART_HOME, replace it with the path to the root directory of all of the quickstarts.

4. Suggested Approach to the Quickstarts

We suggest you approach the quickstarts as follows:

  • Regardless of your level of expertise, we suggest you start with the helloworld.html quickstart. It is the simplest example and is an easy way to prove the server is configured and running correctly.

  • If you are a beginner or new to JBoss, start with the quickstarts labeled Beginner, then try those marked as Intermediate. When you are comfortable with those, move on to the Advanced quickstarts.

  • Some quickstarts are based upon other quickstarts but have expanded capabilities and functionality. If a prerequisite quickstart is listed, make sure you deploy and test it before looking at the expanded version.

5. Getting Started with JBoss EAP for OpenShift

Each quickstart README.html file contains the basic instructions to build and deploy the quickstart to JBoss EAP for OpenShift or JBoss EAP for OpenShift Online.

See Getting Started with JBoss EAP for OpenShift Container Platform for more detailed information about building and running applications on JBoss EAP for OpenShift.

See Getting Started with JBoss EAP for OpenShift Online for more detailed information about building and running applications on JBoss EAP for OpenShift Online.

6. Run the Quickstarts Using the Maven Command Line

The root folder of each individual quickstart contains a README file with specific details on how to build and run the example. In most cases you do the following:

Important
See the README file in each individual quickstart folder for specific details and information on how to run and access the example.

6.1. Build the Quickstart Archive

You can follow these steps to build the application to test for compile errors or to view the contents of the archive. See the specific quickstart README file for complete details.

  1. Open a terminal and navigate to the root directory of the quickstart you want to build.

  2. Use the following command if you only want to build the archive, but not deploy it.

    $ mvn clean install

6.2. Build and Deploy the Quickstart

This section describes the basic steps to build and deploy an application. See the specific instructions in each quickstart README file for any variations to this process.

  1. Make sure you start the JBoss EAP server as described in the quickstart README file.

  2. Open a terminal and navigate to the root directory of the quickstart you want to run.

  3. Use the following command to build and deploy the archive.

    $ mvn clean install wildfly:deploy

6.3. Undeploy an Quickstart

Use the following command to undeploy the quickstart.

$ mvn wildfly:undeploy

7. Run the Quickstarts in Red Hat Developer Studio or Eclipse

You can also start the server and deploy the quickstarts or run the Arquillian tests from Eclipse using JBoss tools. For general information about how to import a quickstart, add a JBoss EAP server, and build and deploy a quickstart, see Use Red Hat Developer Studio or Eclipse to Run the Quickstarts.

8. Configure Optional Components

The following components are needed for only a small subset of the quickstarts. Do not install or configure them unless the quickstart requires it.

8.1. Create Quickstart Users

Some of the quickstarts, particularly those that run in a secured mode and demonstrate security, require that you create quickstart users with different roles for authorization purposes. See Create Users Required by the Quickstarts for detailed instructions to create users required by the quickstarts.

8.2. Configure the PostgreSQL Database

Some of the quickstarts that demonstrate transactions require that you install and configure the PostgreSQL database. See Configure the PostgreSQL Database for Use with the Quickstarts for instructions.

8.3. Configure Byteman

A few of the quickstarts use Byteman to demonstrate distributed transaction processing and crash recovery. See Configure Byteman for Use with the Quickstarts for instructions.

9. Table of Available Quickstarts

All available quickstarts, which are listed in the following table, can be found here: https://github.com/jboss-developer/jboss-eap-quickstarts/.

Each quickstart provides the list of technologies demonstrated by the quickstart and the required experience level needed to build and deploy it. Click on the quickstart link in the table to see more detailed information about how to run it. Some quickstarts require deployment of other quickstarts. This information is noted in the Prerequisites section of the quickstart README.html file.

Note
Some of these quickstarts use the H2 database included with WildFly. It is a lightweight, relational example datasource that is used for examples only. It is not robust or scalable, is not supported, and should NOT be used in a production environment!
Quickstart Name Demonstrated Technologies Description Experience Level Required Prerequisites

app-client

EJB, EAR, AppClient

The app-client quickstart demonstrates how to code and package a client app and use the JBoss EAP client container to start the client Main program.

Intermediate

none

batch-processing

CDI, Batch 1.0, JSF

The batch-processing quickstart shows how to use chunk oriented batch jobs to import a file to a database.

Intermediate

none

bean-validation

CDI, JPA, BV

The bean-validation quickstart provides Arquillian tests to demonstrate how to use CDI, JPA, and Bean Validation.

Beginner

none

bean-validation-custom-constraint

CDI, JPA, BV

The bean-validation-custom-constraint quickstart demonstrates how to use the Bean Validation API to define custom constraints and validators.

Beginner

none

bmt

EJB, BMT

The bmt quickstart demonstrates Bean-Managed Transactions (BMT), showing how to manually manage transaction demarcation while accessing JPA entities.

Intermediate

none

cmt

EJB, CMT, JMS

The cmt quickstart demonstrates Container-Managed Transactions (CMT), showing how to use transactions managed by the container.

Intermediate

none

contacts-jquerymobile

jQuery Mobile, jQuery, JavaScript, HTML5, REST

The contacts-jquerymobile quickstart demonstrates a Jakarta EE 8 mobile database application using HTML5, jQuery Mobile, JAX-RS, JPA, and REST.

Beginner

none

deltaspike-authorization

JSF, CDI, Deltaspike

Demonstrate the creation of a custom authorization example using @SecurityBindingType from DeltaSpike

Beginner

none

deltaspike-beanbuilder

CDI, DeltaSpike

Shows how to create new beans using DeltaSpike utilities.

Advanced

none

deltaspike-projectstage

JSF, CDI, Deltaspike

Demonstrate usage of DeltaSpike project stage and shows usage of a conditional @Exclude

Beginner

none

ee-security

EE Security, Servlet, CDI, WildFly Elytron

The ee-security quickstart demonstrates how EE security can be used with WildFly Elytron.

Intermediate

none

ejb-asynchronous

Asynchronous EJB

The ejb-asynchronous quickstart demonstrates the behavior of asynchronous EJB invocations by a deployed EJB and a remote client and how to handle errors.

Advanced

none

ejb-in-ear

EJB, EAR

The ejb-in-ear quickstart demonstrates how to deploy an EAR archive that contains a JSF WAR and an EJB JAR.

Intermediate

none

ejb-in-war

EJB, JSF, WAR

The ejb-in-war quickstart demonstrates how to package an EJB bean in a WAR archive and deploy it to JBoss EAP. Arquillian tests are also provided.

Intermediate

none

ejb-multi-server

EJB, EAR

The ejb-multi-server quickstart shows how to communicate between multiple applications deployed to different servers using an EJB to log the invocation.

Advanced

none

ejb-remote

EJB, JNDI

The ejb-remote quickstart uses EJB and JNDI to demonstrate how to access an EJB, deployed to JBoss EAP, from a remote Java client application.

Intermediate

none

ejb-security

EJB, Security

The ejb-security quickstart demonstrates the use of Jakarta EE declarative security to control access to EJBs in JBoss EAP.

Intermediate

none

ejb-security-context-propagation

EJB, Security

The ejb-security-context-propagation quickstart demonstrates how the security context can be propagated to a remote EJB using a remote outbound connection configuration

Advanced

none

ejb-security-jaas

EJB, Security

The ejb-security-jaas quickstart demonstrates how legacy JAAS security domains can be used in conjunction with Elytron

Intermediate

none

ejb-security-programmatic-auth

EJB, Security

The ejb-security-programmatic-auth quickstart demonstrates how to programmatically setup different identities when invoking a remote secured EJB.

Intermediate

none

ejb-throws-exception

EJB, EAR

The ejb-throws-exception quickstart demonstrates how to throw and handle exceptions across JARs in an EAR.

Intermediate

none

ejb-timer

EJB Timer

The ejb-timer quickstart demonstrates how to use the EJB timer service @Schedule and @Timeout annotations with JBoss EAP.

Beginner

none

greeter

CDI, JSF, JPA, EJB, JTA

The greeter quickstart demonstrates the use of CDI, JPA, JTA, EJB and JSF in JBoss EAP.

Beginner

none

ha-singleton-deployment

EJB, Singleton Deployments, Clustering

The ha-singleton-deployment quickstart demonstrates the recommended way to deploy any service packaged in an application archive as a cluster-wide singleton.

Advanced

none

ha-singleton-service

JBoss MSC, Singleton Service, Clustering

The ha-singleton-service quickstart demonstrates how to deploy a cluster-wide singleton JBoss MSC service.

Advanced

none

helloworld

CDI, Servlet

The helloworld quickstart demonstrates the use of CDI and Servlet 3 and is a good starting point to verify JBoss EAP is configured correctly.

Beginner

none

helloworld-classfiletransformer

ClassLoading

This is a WAR based application showing you how Wildfly let you apply a ClassTransformer to the classes in your enterprise archive.

Advanced

none

helloworld-html5

CDI, JAX-RS, HTML5

The helloworld-html5 quickstart demonstrates the use of CDI 1.2 and JAX-RS 2.0 using the HTML5 architecture and RESTful services on the backend.

Beginner

none

helloworld-jms

JMS

The helloworld-jms quickstart demonstrates the use of external JMS clients with JBoss EAP.

Intermediate

none

helloworld-mbean

CDI, JMX, MBean

The helloworld-mbean quickstart demonstrates the use of CDI and MBean in JBoss EAP and includes JConsole instructions and Arquillian tests.

Intermediate

none

helloworld-mdb

JMS, EJB, MDB

The helloworld-mdb quickstart uses JMS and EJB Message-Driven Bean (MDB) to create and deploy JMS topic and queue resources in JBoss EAP.

Intermediate

none

helloworld-mdb-propertysubstitution

JMS, EJB, MDB

The helloworld-mdb-propertysubstitution quickstart demonstrates the use of JMS and EJB MDB, enabling property substitution with annotations.

Intermediate

none

helloworld-mutual-ssl

Mutual SSL, Undertow

The helloworld-mutual-ssl quickstart is a basic example that demonstrates mutual SSL configuration in JBoss EAP

Intermediate

none

helloworld-mutual-ssl-secured

Mutual SSL, Security, Undertow

The helloworld-mutual-ssl-secured quickstart demonstrates securing a Web application using client mutual SSL authentication and role-based access control

Intermediate

none

helloworld-rf

CDI, JSF, RichFaces

Similar to the helloworld quickstart, but with a JSF front end.

Beginner

none

helloworld-rs

CDI, JAX-RS

The helloworld-rs quickstart demonstrates a simple Hello World application, bundled and deployed as a WAR, that uses JAX-RS to say Hello.

Intermediate

none

helloworld-singleton

EJB, Singleton

The helloworld-singleton quickstart demonstrates an EJB Singleton Bean that is instantiated once and maintains state for the life of the session.

Beginner

none

helloworld-ssl

SSL, Undertow

The helloworld-ssl quickstart is a basic example that demonstrates server side SSL configuration in JBoss EAP.

Beginner

none

helloworld-ws

JAX-WS

The helloworld-ws quickstart demonstrates a simple Hello World application, bundled and deployed as a WAR, that uses JAX-WS to say Hello.

Beginner

none

hibernate

Hibernate

The hibernate quickstart demonstrates how to use Hibernate ORM 5 API over JPA, using Hibernate-Core and Hibernate Bean Validation, and EJB.

Intermediate

none

hibernate4

Hibernate 4

This quickstart performs the same functions as the hibernate quickstart, but uses Hibernate 4 for database access. Compare this quickstart to the hibernate quickstart to see the changes needed to run with Hibernate 5.

Intermediate

none

http-custom-mechanism

EJB, Security

The http-custom-mechanism quickstart demonstrates how to implement a custom HTTP authentication mechanism that can be registered with Elytron.

Intermediate

none

inter-app

EJB, CDI, JSF

The inter-app quickstart shows you how to use a shared API JAR and an EJB to provide inter-application communication between two WAR deployments.

Advanced

none

jaxrs-client

JAX-RS

The jaxrs-client quickstart demonstrates JAX-RS Client API, which interacts with a JAX-RS Web service that runs on JBoss EAP.

Beginner

none

jaxrs-jwt

JAX-RS, Security

The jaxrs-jwt quickstart demonstrates a JAX-RS secured application using JSON Web Tokens (JWT) with Elytron.

Intermediate

none

jaxws-addressing

JAX-WS

The jaxws-addressing quickstart is a working example of the web service using WS-Addressing.

Beginner

none

jaxws-ejb

JAX-WS

The jaxws-ejb quickstart is a working example of the web service endpoint created from an EJB.

Beginner

none

jaxws-pojo

JAX-WS

The jaxws-pojo quickstart is a working example of the web service endpoint created from a POJO.

Beginner

none

jaxws-retail

JAX-WS

The jaxws-retail quickstart is a working example of a simple web service endpoint.

Beginner

none

jsonp

CDI, JSF, JSON-P

The jsonp quickstart demonstrates how to use the JSON-P API to produce object-based structures and then parse and consume them as stream-based JSON strings.

Beginner

none

jta-crash-rec

JTA, Crash Recovery

The jta-crash-rec quickstart uses JTA and Byteman to show how to code distributed (XA) transactions in order to preserve ACID properties on server crash.

Advanced

none

jts

JTS, EJB, JMS

The jts quickstart shows how to use JTS to perform distributed transactions across multiple containers, fulfilling the properties of an ACID transaction.

Intermediate

cmt

jts-distributed-crash-rec

JTS, Crash Recovery

The jts-distributed-crash-rec quickstart uses JTS and Byteman to demonstrate distributed crash recovery across multiple application servers.

Advanced

jts

kitchensink

CDI, JSF, JPA, EJB, JAX-RS, BV

The kitchensink quickstart demonstrates a Jakarta EE 8 web-enabled database application using JSF, CDI, EJB, JPA, and Bean Validation.

Intermediate

none

kitchensink-angularjs

AngularJS, CDI, JPA, EJB, JPA, JAX-RS, BV

The kitchensink-angularjs quickstart demonstrates a Jakarta EE 8 application using AngularJS with JAX-RS, CDI, EJB, JPA, and Bean Validation.

Intermediate

none

kitchensink-ear

CDI, JSF, JPA, EJB, JAX-RS, BV, EAR

The kitchensink-ear quickstart demonstrates web-enabled database application, using JSF, CDI, EJB, JPA, and Bean Validation, packaged as an EAR.

Intermediate

none

kitchensink-jsp

JSP, JSTL, CDI, JPA, EJB, JAX-RS, BV

The kitchensink-jsp quickstart demonstrates how to use JSP, JSTL, CDI, EJB, JPA, and Bean Validation in JBoss EAP.

Intermediate

none

kitchensink-ml

CDI, JSF, JPA, EJB, JAX-RS, BV, i18n, l10n

The kitchensink-ml quickstart demonstrates a localized Jakarta EE 8 compliant application using JSF, CDI, EJB, JPA, and Bean Validation.

Intermediate

none

kitchensink-utjs-angularjs

Undertow.js, Angular.js

Based on kitchensink, but uses a Angular for the front end and Undertow.js for the back end.

Intermediate

none

kitchensink-utjs-mustache

Undertow.js, Mustache

Based on kitchensink, but uses Mustache for the front end and Undertow.js for the back end.

Intermediate

none

logging

Logging

The logging quickstart demonstrates how to configure different logging levels in JBoss EAP. It also includes an asynchronous logging example.

Intermediate

none

logging-tools

JBoss Logging Tools

The logging-tools quickstart shows how to use JBoss Logging Tools to create internationalized loggers, exceptions, and messages and localize them.

Beginner

none

mail

JavaMail, CDI, JSF

The mail quickstart demonstrates how to send email using CDI and JSF and the default Mail provider that ships with JBoss EAP.

Beginner

none

managed-executor-service

EE Concurrency Utilities, JAX-RS, JAX-RS Client API

The managed-executor-service quickstart demonstrates how Jakarta EE applications can submit tasks for asynchronous execution.

Beginner

none

messaging-clustering

JMS, MDB

The messaging-clustering quickstart does not contain any code and instead uses the helloworld-mdb quickstart to demonstrate clustering using ActiveMQ Messaging.

Intermediate

helloworld-mdb

messaging-clustering-singleton

JMS, MDB, Clustering

The messaging-clustering-singleton quickstart uses a JMS topic and a queue to demonstrate clustering using JBoss EAP messaging with MDB singleton configuration where only one node in the cluster will be active.

Advanced

none

microprofile-config

MicroProfile Config

The microprofile-config quickstart demonstrates the use of the MicroProfile Config

Beginner

none

microprofile-fault-tolerance

MicroProfile, Fault Tolerance

The microprofile-fault-tolerance quickstart demonstrates how to use Eclipse MicroProfile Fault Tolerance in JBoss EAP.

Intermediate

none

microprofile-health

MicroProfile Health

The microprofile-health quickstart demonstrates the use of the MicroProfile Health

Beginner

none

microprofile-jwt

JWT, Security, MicroProfile

The microprofile-jwt quickstart demonstrates the use of the MicroProfile JWT

Intermediate

none

microprofile-metrics

MicroProfile Metrics

The microprofile-metrics quickstart demonstrates the use of the MicroProfile

Beginner

none

microprofile-openapi

MicroProfile OpenAPI

This guide demonstrate how to use the MicroProfile OpenAPI functionality in JBoss EAP to expose an OpenAPI document for a simple REST application.

Beginner

none

microprofile-opentracing

MicroProfile OpenTracing

The microprofile-opentracing quickstart demonstrates the use of the

Beginner

none

microprofile-rest-client

MicroProfile REST Client

The microprofile-rest-client quickstart demonstrates the use of the MicroProfile

Beginner

none

numberguess

CDI, JSF

The numberguess quickstart demonstrates the use of CDI (Contexts and Dependency Injection) and JSF (JavaServer Faces) in JBoss EAP.

Beginner

none

payment-cdi-event

CDI, JSF

The payment-cdi-event quickstart demonstrates how to create credit and debit CDI Events in JBoss EAP, using a JSF front-end client.

Beginner

none

resteasy-jaxrs-client

JAX-RS, CDI

The resteasy-jaxrs-client quickstart demonstrates an external JAX-RS RestEasy client, which interacts with a JAX-RS Web service that uses CDI and JAX-RS.

Intermediate

helloworld-rs

security-domain-to-domain

Servlet, EJB, Security

The security-domain-to-domain quickstart demonstrates the propagation of an identity across two different deployments using different security domains.

Advanced

none

servlet-async

Asynchronous Servlet, CDI, EJB

The servlet-async quickstart demonstrates how to use asynchronous servlets to detach long-running tasks and free up the request processing thread.

Intermediate

none

servlet-filterlistener

Servlet Filter, Servlet Listener

The servlet-filterlistener quickstart demonstrates how to use Servlet filters and listeners in an application.

Intermediate

none

servlet-security

Servlet, Security

The servlet-security quickstart demonstrates the use of Jakarta EE declarative security to control access to Servlets and Security in JBoss EAP.

Intermediate

none

shopping-cart

SFSB EJB

The shopping-cart quickstart demonstrates how to deploy and run a simple Jakarta EE 8 shopping cart application that uses a stateful session bean (SFSB).

Intermediate

none

spring-greeter

Spring MVC, JSP, JPA

The spring-greeter quickstart is based on the greeter quickstart, but differs in that it uses Spring MVC for Mapping GET and POST requests.

Beginner

none

spring-kitchensink-basic

JSP, JPA, JSON, Spring, JUnit

The spring-kitchensink-basic quickstart is an example of a Jakarta EE 8 application using JSP, JPA and Spring 4.x.

Intermediate

none

spring-kitchensink-springmvctest

JSP, JPA, JSON, Spring, JUnit

The spring-kitchensink-springmvctest quickstart demonstrates how to create an MVC application using JSP, JPA and Spring 4.x.

Intermediate

none

spring-resteasy

Resteasy, Spring

The spring-resteasy quickstart demonstrates how to package and deploy a web application that includes resteasy-spring integration.

Beginner

none

tasks-jsf

JSF, JPA

The tasks-jsf quickstart demonstrates how to use JPA persistence with JSF as the view layer.

Intermediate

none

tasks-rs

JPA, JAX-RS

The tasks-rs quickstart demonstrates how to implement a JAX-RS service that uses JPA persistence.

Intermediate

none

temperature-converter

CDI, JSF, SLSB EJB

The temperature-converter quickstart does temperature conversion using an EJB Stateless Session Bean (SLSB), CDI, and a JSF front-end client.

Beginner

none

thread-racing

Batch, CDI, EE Concurrency, JAX-RS, JMS, JPA, JSON, Web Sockets

A thread racing web application that demonstrates technologies introduced or updated in the latest Jakarta EE specification.

Beginner

none

websocket-client

Web Socket, CDI Events, JSON, SSL

Demonstrates use of a Javascript WebSocket client, WebSocket configuration, programmatic binding, and secure WebSocket.

Intermediate

none

websocket-endpoint

CDI, WebSocket, JSON-P

Shows how to use WebSockets with JSON to broadcast information to all open WebSocket sessions in JBoss EAP.

Beginner

none

websocket-hello

WebSocket, CDI, JSF

The websocket-hello quickstart demonstrates how to create a simple WebSocket application.

Beginner

none

wicket-ear

Apache Wicket, JPA

Demonstrates how to use the Wicket Framework 7.x with the JBoss server using the Wicket Jakarta EE integration, packaged as an EAR

Intermediate

none

wicket-war

Apache Wicket, JPA

Demonstrates how to use the Wicket Framework 7.x with the JBoss server using the Wicket Jakarta EE integration packaged as a WAR

Intermediate

none

wsat-simple

WS-AT, JAX-WS

The wsat-simple quickstart demonstrates a WS-AT (WS-AtomicTransaction) enabled JAX-WS Web service, bundled as a WAR, and deployed to JBoss EAP.

Intermediate

none

wsba-coordinator-completion-simple

WS-BA, JAX-WS

The wsba-coordinator-completion-simple quickstart deploys a WS-BA (WS Business Activity) enabled JAX-WS Web service WAR (CoordinatorCompletion protocol).

Intermediate

none

wsba-participant-completion-simple

WS-BA, JAX-WS

The wsba-participant-completion-simple quickstart deploys a WS-BA (WS Business Activity) enabled JAX-WS Web service WAR (ParticipantCompletion Protocol).

Intermediate

none

xml-jaxp

JAXP, SAX, DOM, Servlet

The xml-jaxp quickstart demonstrates how to use Servlet and JSF to upload an XML file to JBoss EAP and validate and parse it using DOM or SAX.

Intermediate

none