[TIP]

February 2, 2024 · View on GitHub

//*********************************************************************************** // Enable the following flag to build README.html files for JBoss EAP product builds. // Comment it out for WildFly builds. //*********************************************************************************** :ProductRelease:

//*********************************************************************************** // Enable the following flag to build README.html files for EAP XP product builds. // Comment it out for WildFly or JBoss EAP product builds. //*********************************************************************************** //:EAPXPRelease:

// This is a universal name for all releases :ProductShortName: JBoss EAP // Product names and links are dependent on whether it is a product release (CD or JBoss) // or the WildFly project. // The "DocInfo*" attributes are used to build the book links to the product documentation

ifdef::ProductRelease[] // JBoss EAP release :productName: JBoss EAP :productNameFull: Red Hat JBoss Enterprise Application Platform :productVersion: 8.0 :DocInfoProductNumber: {productVersion} :WildFlyQuickStartRepoTag: 8.0.x :productImageVersion: 8.0.0 :helmChartName: jboss-eap/eap8 endif::[]

ifdef::EAPXPRelease[] // JBoss EAP XP release :productName: JBoss EAP XP :productNameFull: Red Hat JBoss Enterprise Application Platform expansion pack :productVersion: 3.0 :DocInfoProductNumber: 7.4 :WildFlyQuickStartRepoTag: XP_3.0.0.GA :productImageVersion: 3.0 :helmChartName: jboss-eap/eap-xp3 endif::[]

ifdef::ProductRelease,EAPXPRelease[] :githubRepoUrl: https://github.com/jboss-developer/jboss-eap-quickstarts/ :githubRepoCodeUrl: https://github.com/jboss-developer/jboss-eap-quickstarts.git :jbossHomeName: EAP_HOME :DocInfoProductName: Red Hat JBoss Enterprise Application Platform :DocInfoProductNameURL: red_hat_jboss_enterprise_application_platform :DocInfoPreviousProductName: jboss-enterprise-application-platform :quickstartDownloadName: {productNameFull} {productVersion} Quickstarts :quickstartDownloadUrl: https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?product=appplatform&downloadType=distributions :helmRepoName: jboss-eap :helmRepoUrl: https://jbossas.github.io/eap-charts/ // END ifdef::ProductRelease,EAPXPRelease[] endif::[]

ifndef::ProductRelease,EAPXPRelease[] // WildFly project :productName: WildFly :productNameFull: WildFly Application Server :ProductShortName: {productName} :jbossHomeName: WILDFLY_HOME :productVersion: 28 :productImageVersion: 28.0 :githubRepoUrl: https://github.com/wildfly/quickstart/ :githubRepoCodeUrl: https://github.com/wildfly/quickstart.git :WildFlyQuickStartRepoTag: 28.0.1.Final :DocInfoProductName: Red Hat JBoss Enterprise Application Platform :DocInfoProductNameURL: red_hat_jboss_enterprise_application_platform // Do not update the following until after the 7.4 docs are published! :DocInfoProductNumber: 7.4 :DocInfoPreviousProductName: jboss-enterprise-application-platform :helmRepoName: wildfly :helmRepoUrl: http://docs.wildfly.org/wildfly-charts/ :helmChartName: wildfly/wildfly // END ifndef::ProductRelease,EAPCDRelease,EAPXPRelease[] endif::[]

:source: {githubRepoUrl}

// Values for Openshift S2i sections attributes :CDProductName: {productNameFull} for OpenShift :CDProductShortName: {ProductShortName} for OpenShift :CDProductTitle: {CDProductName} :CDProductNameSentence: Openshift release for {ProductShortName} :CDProductAcronym: {CDProductShortName} :CDProductVersion: {productVersion} :EapForOpenshiftBookName: {productNameFull} for OpenShift :EapForOpenshiftOnlineBookName: {EapForOpenshiftBookName} Online :xpaasproduct: {productNameFull} for OpenShift :xpaasproductOpenShiftOnline: {xpaasproduct} Online :xpaasproduct-shortname: {CDProductShortName} :xpaasproductOpenShiftOnline-shortname: {xpaasproduct-shortname} Online :ContainerRegistryName: Red Hat Container Registry :EapForOpenshiftBookName: Getting Started with {ProductShortName} for OpenShift Container Platform :EapForOpenshiftOnlineBookName: Getting Started with {ProductShortName} for OpenShift Online :OpenShiftOnlinePlatformName: Red Hat OpenShift Container Platform :OpenShiftOnlineName: Red Hat OpenShift Online :ImagePrefixVersion: eap80 :ImageandTemplateImportBaseURL: https://raw.githubusercontent.com/jboss-container-images/jboss-eap-openshift-templates :ImageandTemplateImportURL: {ImageandTemplateImportBaseURL}/{ImagePrefixVersion}/ :BuildImageStream: jboss-{ImagePrefixVersion}-openjdk11-openshift :RuntimeImageStream: jboss-{ImagePrefixVersion}-openjdk11-runtime-openshift

// OpenShift repository and reference for quickstarts :EAPQuickStartRepo: https://github.com/jboss-developer/jboss-eap-quickstarts :EAPQuickStartRepoRef: 8.0.x :EAPQuickStartRepoTag: EAP_8.0.0.GA // Links to the OpenShift documentation :LinkOpenShiftGuide: https://access.redhat.com/documentation/en-us/{DocInfoProductNameURL}/{DocInfoProductNumber}/html-single/getting_started_with_jboss_eap_for_openshift_container_platform/ :LinkOpenShiftOnlineGuide: https://access.redhat.com/documentation/en-us/{DocInfoProductNameURL}/{DocInfoProductNumber}/html-single/getting_started_with_jboss_eap_for_openshift_online/

ifdef::EAPXPRelease[] // Attributes for XP releases :EapForOpenshiftBookName: {productNameFull} for OpenShift :EapForOpenshiftOnlineBookName: {productNameFull} for OpenShift Online :xpaasproduct: {productNameFull} for OpenShift :xpaasproductOpenShiftOnline: {productNameFull} for OpenShift Online :xpaasproduct-shortname: {ProductShortName} for OpenShift :xpaasproductOpenShiftOnline-shortname: {ProductShortName} for OpenShift Online :ContainerRegistryName: Red Hat Container Registry :EapForOpenshiftBookName: {productNameFull} for OpenShift :EapForOpenshiftOnlineBookName: {productNameFull} for OpenShift Online :ImagePrefixVersion: eap-xp3 :ImageandTemplateImportURL: {ImageandTemplateImportBaseURL}/{ImagePrefixVersion}/ :BuildImageStream: jboss-{ImagePrefixVersion}-openjdk11-openshift :RuntimeImageStream: jboss-{ImagePrefixVersion}-openjdk11-runtime-openshift // OpenShift repository and reference for quickstarts :EAPQuickStartRepoRef: xp-3.0.x // Links to the OpenShift documentation :LinkOpenShiftGuide: https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/{DocInfoProductNumber}/html/using_eclipse_microprofile_in_jboss_eap/using-the-openshift-image-for-jboss-eap-xp_default :LinkOpenShiftOnlineGuide: https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/{DocInfoProductNumber}/html/using_eclipse_microprofile_in_jboss_eap/using-the-openshift-image-for-jboss-eap-xp_default endif::[]

ifndef::ProductRelease,EAPCDRelease,EAPXPRelease[] :ImageandTemplateImportURL: https://raw.githubusercontent.com/wildfly/wildfly-s2i/v{productVersion}.0/ endif::[]

//************************* // Other values //************************* :buildRequirements: Java 11.0 (Java SDK 11) or later and Maven 3.6.0 or later :jbdsEapServerName: Red Hat JBoss Enterprise Application Platform 7.3 :javaVersion: Jakarta EE 10 ifdef::EAPXPRelease[] :javaVersion: Eclipse MicroProfile endif::[] :githubRepoBranch: master :guidesBaseUrl: https://github.com/jboss-developer/jboss-developer-shared-resources/blob/master/guides/ :useEclipseUrl: {guidesBaseUrl}USE_JBDS.adoc#use_red_hat_jboss_developer_studio_or_eclipse_to_run_the_quickstarts :useEclipseDeployJavaClientDocUrl: {guidesBaseUrl}USE_JBDS.adoc#deploy_and_undeploy_a_quickstart_containing_server_and_java_client_projects :useEclipseDeployEARDocUrl: {guidesBaseUrl}USE_JBDS.adoc#deploy_and_undeploy_a_quickstart_ear_project :useProductHomeDocUrl: {guidesBaseUrl}USE_OF_{jbossHomeName}.adoc#use_of_product_home_and_jboss_home_variables :configureMavenDocUrl: {guidesBaseUrl}CONFIGURE_MAVEN_JBOSS_EAP.adoc#configure_maven_to_build_and_deploy_the_quickstarts :arquillianTestsDocUrl: {guidesBaseUrl}RUN_ARQUILLIAN_TESTS.adoc#run_the_arquillian_tests :addUserDocUrl: {guidesBaseUrl}CREATE_USERS.adoc#create_users_required_by_the_quickstarts :addApplicationUserDocUrl: {guidesBaseUrl}CREATE_USERS.adoc#add_an_application_user :addManagementUserDocUrl: {guidesBaseUrl}CREATE_USERS.adoc#add_an_management_user :startServerDocUrl: {guidesBaseUrl}START_JBOSS_EAP.adoc#start_the_jboss_eap_server :configurePostgresDocUrl: {guidesBaseUrl}CONFIGURE_POSTGRESQL_JBOSS_EAP.adoc#configure_the_postgresql_database_for_use_with_the_quickstarts :configurePostgresDownloadDocUrl: {guidesBaseUrl}CONFIGURE_POSTGRESQL_JBOSS_EAP.adoc#download_and_install_postgresql :configurePostgresCreateUserDocUrl: {guidesBaseUrl}CONFIGURE_POSTGRESQL_JBOSS_EAP.adoc#create_a_database_user :configurePostgresAddModuleDocUrl: {guidesBaseUrl}CONFIGURE_POSTGRESQL_JBOSS_EAP.adoc#add_the_postgres_module_to_the_jboss_eap_server :configurePostgresDriverDocUrl: {guidesBaseUrl}CONFIGURE_POSTGRESQL_JBOSS_EAP.adoc#configure_the_postgresql_driver_in_the_jboss_eap_server :configureBytemanDownloadDocUrl: {guidesBaseUrl}CONFIGURE_BYTEMAN.adoc#download_and_configure_byteman :configureBytemanDisableDocUrl: {guidesBaseUrl}CONFIGURE_BYTEMAN.adoc#disable_the_byteman_script :configureBytemanClearDocUrl: {guidesBaseUrl}CONFIGURE_BYTEMAN.adoc#clear_the_transaction_object_store :configureBytemanQuickstartDocUrl: {guidesBaseUrl}CONFIGURE_BYTEMAN.adoc#configure_byteman_for_use_with_the_quickstarts :configureBytemanHaltDocUrl: {guidesBaseUrl}CONFIGURE_BYTEMAN.adoc#use_byteman_to_halt_the_application[ :configureBytemanQuickstartsDocUrl: {guidesBaseUrl}CONFIGURE_BYTEMAN.adoc#configure_byteman_for_use_with_the_quickstarts

:EESubsystemNamespace: urn:jboss:domain:ee:4.0 :IiopOpenJdkSubsystemNamespace: urn:jboss:domain:iiop-openjdk:2.0 :MailSubsystemNamespace: urn:jboss:domain:mail:3.0 :SingletonSubsystemNamespace: urn:jboss:domain:singleton:1.0 :TransactionsSubsystemNamespace: urn:jboss:domain:transactions:4.0

// LinkProductDocHome: https://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/ :LinkProductDocHome: https://access.redhat.com/documentation/en/jboss-enterprise-application-platform-continuous-delivery :LinkConfigGuide: https://access.redhat.com/documentation/en-us/{DocInfoProductNameURL}/{DocInfoProductNumber}/html-single/configuration_guide/ :LinkDevelopmentGuide: https://access.redhat.com/documentation/en-us/{DocInfoProductNameURL}/{DocInfoProductNumber}/html-single/development_guide/ :LinkGettingStartedGuide: https://access.redhat.com/documentation/en-us/{DocInfoProductNameURL}/{DocInfoProductNumber}/html-single/getting_started_guide/ :LinkOpenShiftWelcome: https://docs.openshift.com/online/welcome/index.html :LinkOpenShiftSignup: https://docs.openshift.com/online/getting_started/choose_a_plan.html :OpenShiftTemplateName: JBoss EAP CD (no https)

:ConfigBookName: Configuration Guide :DevelopmentBookName: Development Guide :GettingStartedBookName: Getting Started Guide

:JBDSProductName: Red Hat CodeReady Studio :JBDSVersion: 12.15 :LinkJBDSInstall: https://access.redhat.com/documentation/en-us/red_hat_codeready_studio/{JBDSVersion}/html-single/installation_guide/ :JBDSInstallBookName: Installation Guide :LinkJBDSGettingStarted: https://access.redhat.com/documentation/en-us/red_hat_codeready_studio/{JBDSVersion}/html-single/getting_started_with_codeready_studio_tools/ :JBDSGettingStartedBookName: Getting Started with CodeReady Studio Tools

:toc: :toclevels: 4 :numbered:

ifndef::ProductRelease,EAPXPRelease[] = {productName} Quickstarts

[toc]

[abstract] The quickstarts demonstrate {javaVersion} and a few additional technologies from the {productNameFull} stack. They provide small, specific, working examples that can be used as a reference for your own project.

[[introduction]] == Introduction

These quickstarts run on the WildFly application server. The quickstarts are configured to use the correct Maven dependencies and ensure that you test and compile the quickstarts against the correct runtime environment.

Each quickstart folder contains a README.adoc file that describes the quickstart features and provides instructions about how to build and run it. Instructions are provided to build the more readable README.html files.

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

[[system_requirements]] == System Requirements

The applications these projects produce are designed to be run on {productNameFull} {productVersion} or later.

All you need to build these projects is {buildRequirements}.

[[use_of_product_home_and_jboss_home_variables]] == Use of WILDFLY_HOME and QUICKSTART_HOME Variables

The quickstart README files use the replaceable value __WILDFLY_HOME__ to denote the path to the WildFly server. When you encounter this value in a README file, make sure you replace it with the actual path to your WildFly server.

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

[[prerequisites]] == Prerequisites

Before you begin, you must perform the following tasks.

. xref:build_wildfly_server[Build the WildFly Server (Optional)]: This step is only required if you plan to run the latest https://github.com/wildfly/wildfly[development version of the WildFly server]. It is not required if you are running a https://github.com/wildfly/wildfly/tags[tagged] or https://github.com/wildfly/wildfly/releases[released] version of the WildFly server.

. xref:build_wildfly_boms[Build and Install the WildFly BOMs (Optional)]: This step is only required if you are building a development version of the WildFly server and see dependency issues when you build the quickstarts. It is not required if you are running a https://github.com/wildfly/quickstart/tags[tagged] or https://github.com/wildfly/boms/releases[released] version of the WildFly server.

. xref:build_quickstart_readme_files[Build the Quickstart README.html Files (Required)]: The quickstart README files are written in AsciiDoc to provide modular, reusable content; however, this makes them difficult to read. For this reason, you must also build the quickstart README.html files from the AsciiDoc source.

[[build_wildfly_server]] === Build the WildFly Server (Optional)

If you have downloaded a https://github.com/wildfly/wildfly/tags[tagged] or https://github.com/wildfly/wildfly/releases[released] version of the WildFly server, you can ignore this step. You can simply extract the WildFly server from the compressed file and https://github.com/jboss-developer/jboss-developer-shared-resources/blob/master/guides/START_JBOSS_EAP.adoc#start-the-red-hat-jboss-enterprise-application-platform-server[start the server] from that directory.

If you plan to run the https://github.com/wildfly/wildfly[development version of the WildFly server], you must first download and build the WildFly server from source.

. If you have not yet done so, you must clone https://github.com/wildfly/wildfly[WildFly server] repository and navigate to it. You might also want to change the remote name from origin to upstream to be consistent with your other repositories. + [source,options="nowrap"]

gitclonegit@github.com:wildfly/wildfly.gitgit clone git@github.com:wildfly/wildfly.git cd wildfly $ git remote rename origin upstream

. Verify that your local master branch contains the latest updates. + [source,options="nowrap"]

gitfetchupstreamgit fetch upstream git checkout master $ git reset --hard upstream/master

. Build the WildFly server using the following command. + [source,options="nowrap"]

$ mvn clean install -DskipTests -Denforcer.skip=true -Dcheckstyle.skip=true

. The WildFly server folder and ZIP files, which are named wildfly-__VERSION__-SNAPSHOT and wildfly-__VERSION__-SNAPSHOT.ZIP respectively, are located in the build/target/ directory. You can copy that folder or unzip the file to another location or https://github.com/jboss-developer/jboss-developer-shared-resources/blob/master/guides/START_JBOSS_EAP.adoc#start-the-red-hat-jboss-enterprise-application-platform-server[start the server] from that directory.

[[build_wildfly_boms]] === Build and Install the WildFly BOMs (Optional)

If you have downloaded and are running a https://github.com/wildfly/quickstart/tags[tagged] or https://github.com/wildfly/quickstart/releases[released] version of the quickstarts, you can ignore this step because the required BOMs are already installed in Maven.

If you are using the latest https://github.com/wildfly/quickstart[development version] of the quickstarts and you are able to successfully build and deploy the quickstarts, you can also ignore this step because the required BOMS are already installed in Maven.

However, if you are using the latest https://github.com/wildfly/quickstart[development version] of the quickstarts and you see build errors indicating missing dependencies, you must first xref:build_wildfly_server[build the latest WildFly server] and then build and install the WildFly BOMs. This installs the latest Maven artifacts that are required by the SNAPSHOT version of the WildFly quickstarts that are still under development.

. If you have not yet done so, clone https://github.com/wildfly/boms[WildFly BOMs] repository and navigate to it. You might also want to rename the directory to wildfly-boms to make it clear which BOMs it contains and also change the remote name from origin to upstream to be consistent with your other repositories. + [source,options="nowrap"]

gitclonegit@github.com:wildfly/boms.gitgit clone git@github.com:wildfly/boms.git mv boms wildfly-boms cdwildflybomscd wildfly-boms git remote rename origin upstream

. Verify that your local master branch contains the latest updates. + [source,options="nowrap"]

gitfetchupstreamgit fetch upstream git checkout master $ git reset --hard upstream/master

. Build the WildFly BOMs using the following command. + [source,options="nowrap"]

$ mvn clean install

NOTE: If you run into build errors, check with the WildFly team to see if the repositories are temporarily out of sync.

. At this point, you can verify that all of the quickstarts build using the following command. + [source,options="nowrap"]

$ mvn clean install '-Pdefault,!complex-dependencies'

[[build_quickstart_readme_files]] === Build the Quickstart README.html Files (Required)

The quickstart README files are written in AsciiDoc, not only because the language is much more powerful than Markdown, but also also because it is possible to extract common instructions into separate files to be reused across the quickstarts. While this makes them more flexible and easier to maintain, unfortunately, included files do not render in a readable format in GitHub or in most text editors.

The Maven plugin that is used to build and deploy the quickstarts can also generate fully rendered README.html instructions from the README.adoc files.

To build all of the quickstart README.html files, including the root README.html file that contains the table with links to all available quickstarts, navigate to the root folder of the quickstarts and run the following command.

[source,options="nowrap"]

$ mvn clean package -Pdocs

[TIP]

To build the README.html file for a specific quickstart, navigate to the quickstart directory and run the above command.

If you see errors about missing dependencies, check the xref:prerequisites[prerequisites] section to determine whether you need to xref:build_wildfly_boms[build the WildFly BOMs] that corresponds to the version of the quickstarts that you are using.

[[suggested_approach_to_the_quickstarts]] == Suggested Approach to the Quickstarts

We recommend that you approach the quickstarts as follows:

  • Regardless of your level of expertise, we suggest you start with the helloworld 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.

The root folder of each individual quickstart contains a README.html file with detailed instructions on how to build and run the example.

// END ifndef::ProductRelease,EAPCDRelease,EAPXPRelease[] endif::[]

//********************************************************************************** // // WildFly Developers: You can ignore the rest of this file. // It is for the JBoss EAP product, CD and XP Releases. // //**********************************************************************************

ifdef::ProductRelease,EAPXPRelease[] // These instructions are only for the JBoss EAP product, CD and XP Releases. = {productNameFull} ({productName}) Quickstarts

[abstract] The quickstarts demonstrate {javaVersion} and a few additional technologies from the {productNameFull} stack. They provide small, specific, working examples that can be used as a reference for your own project.

[[introduction]] == Introduction

These quickstarts run on {productNameFull} {productVersion}.

We recommend that you use the {quickstartDownloadName} ZIP file, which you can download from the {quickstartDownloadUrl}[{productName} 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{outfilesuffix} 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.

ifdef::ProductRelease,EAPXPRelease[] // System Requirements are not needed for the CD Releases, only for the Product and XP Release. [[system_requirements]] == System Requirements

The applications these projects produce are designed to be run on {productNameFull} {productVersion} or later.

All you need to build these projects is {buildRequirements}.

[[use_of_product_home_and_jboss_home_variables]] == Use of {jbossHomeName} and QUICKSTART_HOME Variables

The quickstart README files use the replaceable value __{jbossHomeName}__ to denote the path to the {productName} installation. When you encounter this value in a README file, make sure you replace it with the actual path to your {productName} installation. The installation path is described in detail here: link:{useProductHomeDocUrl}[Use of {jbossHomeName} 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. // END ifdef::ProductRelease,EAPXPRelease[] endif::[]

[[suggested_approach_to_the_quickstarts]] == 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 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.

// END ifdef::ProductRelease,EAPXPRelease[] endif::[]

// The following is included for all versions: WildFly, JBoss EAP, EAP CD and EAP XP [[available_quickstarts]] == Table of Available Quickstarts

The sources for all available quickstarts, which are listed in the following table, can be found here: {githubRepoUrl}.

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 {productNameFull} {productVersion}. 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!

// [cols="1,1,2,1,1", options="header"] |=== | Quickstart Name | Demonstrated Technologies | Description | Experience Level Required | Prerequisites | link:cmt/README{outfilesuffix}[cmt]|EJB, CMT, JMS | The cmt quickstart demonstrates Container-Managed Transactions (CMT), showing how to use transactions managed by the container. | Intermediate | none | link:ee-security/README{outfilesuffix}[ee-security]|EE Security, Servlet, CDI | The ee-security quickstart demonstrates Jakarta EE security. | Intermediate | none | link:helloworld/README{outfilesuffix}[helloworld]|Servlet | The helloworld quickstart demonstrates the use of Servlet 6 and is a good starting point to verify {productName} is configured correctly. | Beginner | none | link:helloworld-ws/README{outfilesuffix}[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 | link:jaxrs-client/README{outfilesuffix}[jaxrs-client]|JAX-RS | The jaxrs-client quickstart demonstrates JAX-RS Client API, which interacts with a JAX-RS Web service that runs on {productName}. | Beginner | none | link:kitchensink/README{outfilesuffix}[kitchensink]|CDI, JSF, JPA, EJB, JAX-RS, BV | The kitchensink quickstart demonstrates a {javaVersion} web-enabled database application using JSF, CDI, EJB, JPA, and Bean Validation. | Intermediate | none | link:numberguess/README{outfilesuffix}[numberguess]|CDI, JSF | The numberguess quickstart demonstrates the use of CDI (Contexts and Dependency Injection) and JSF (JavaServer Faces) in {productName}. | Beginner | none | link:remote-helloworld-mdb/README{outfilesuffix}[remote-helloworld-mdb]|JMS, EJB, MDB | The remote-helloworld-mdb quickstart demonstrates the use of JMS and EJB Message-Driven Bean in {productName} with a remote broker. | Intermediate | none | link:servlet-security/README{outfilesuffix}[servlet-security]|Servlet, Security | The servlet-security quickstart demonstrates the use of Jakarta EE declarative security to control access to Servlets and Security in {productName}. | Intermediate | none | link:temperature-converter/README{outfilesuffix}[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 | link:thread-racing/README{outfilesuffix}[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 | link:todo-backend/README{outfilesuffix}[todo-backend]|JPA, JAX-RS, OpenShift, Galleon | The todo-backend quickstart demonstrates how to implement a backend that exposes a HTTP API with JAX-RS | Intermediate | none | link:websocket-hello/README{outfilesuffix}[websocket-hello]|WebSocket, CDI, JSF | The websocket-hello quickstart demonstrates how to create a simple WebSocket application. | Beginner | none |=== //