JBoss Enterprise Application Platform: A Guide for Developers
If you are looking for a powerful, modular, and cloud-ready platform to host your Java applications, you might want to consider JBoss Enterprise Application Platform (EAP). JBoss EAP is an open source platform that supports the latest Java standards and specifications, such as Jakarta EE 8, Java SE 11, and Eclipse MicroProfile. It also provides enterprise-grade features such as clustering, caching, security, management, and automation. In this article, we will show you how to download, install, and use JBoss EAP for your development needs.
jboss enterprise application platform download red hat developer
What is JBoss EAP and why use it?
JBoss EAP is an application platform that is based on the popular open source project WildFly. It is designed to run highly transactional, web-scale Java applications in a variety of environments, including on-premise, virtual, and cloud. JBoss EAP is certified to comply with the Jakarta EE 8 specifications, which are the successor of the Java EE standards. This means that you can use the familiar and popular Jakarta EE APIs to develop your applications, such as Servlets, JSPs, JSF, CDI, EJBs, JPA, JMS, and more. You can also use the Eclipse MicroProfile APIs to add additional capabilities to your applications, such as fault tolerance, health checks, metrics, configuration, open tracing, and more.
Features and benefits of JBoss EAP
Some of the main features and benefits of using JBoss EAP are:
Modular and lightweight: JBoss EAP has a modular structure that allows you to enable only the services that you need for your application. This improves the startup speed and reduces the memory footprint of your application server. You can also customize your server configuration by adding or removing modules as needed.
Optimized for the cloud: JBoss EAP is highly efficient and scalable for container and cloud deployments. It supports various cloud platforms such as Red Hat OpenShift, Amazon Web Services, Azure App Services, and Google Cloud. It also offers fast start-up times, low resource utilization, and intelligent load balancing for your applications.
Enterprise performance: JBoss EAP provides high performance and reliability for your applications. It supports failover, clustering, caching, distributed deployment, and transaction management. It also uses a flexible web server called Undertow that supports both blocking and non-blocking IO models.
Security: JBoss EAP includes a security subsystem called Elytron that provides a unified framework to manage and configure access for standalone servers and managed domains. It supports various authentication mechanisms such as LDAP, Kerberos, OAuth2, JWT, and more. It also supports encryption, SSL/TLS, certificate management, auditing, and role-based access control.
Management and automation: JBoss EAP provides powerful tools to manage and automate your application server. You can use the web-based management console or the command-line interface (CLI) to monitor and configure your server. You can also use the RESTful management API or the Java management API to integrate with external tools or scripts. You can also use Ansible to automate the installation and configuration of your server.
Deployment options for JBoss EAP
JBoss EAP offers various deployment options to suit your needs. You can choose to deploy your applications on:
Standalone server: This is the simplest option where you run a single instance of JBoss EAP on your local machine or a remote host. You can use this option for development, testing, or production purposes. You can also configure multiple standalone servers to form a cluster for high availability and load balancing.
Managed domain: This is a more advanced option where you run multiple instances of JBoss EAP that are managed by a central controller called the domain controller. You can use this option to manage large-scale deployments across multiple hosts and environments. You can also define server groups and profiles to apply common configurations and deployments to your servers.
Container: This is the most modern option where you run JBoss EAP as a containerized application on a platform such as Docker or Kubernetes. You can use this option to leverage the benefits of containerization, such as portability, scalability, isolation, and automation. You can also use Red Hat OpenShift as a cloud-native platform that provides integrated support for JBoss EAP containers.
How to download and install JBoss EAP
To download and install JBoss EAP, you need to have a Red Hat Developer account. If you don't have one, you can sign up for free at . Once you have an account, you can follow these steps:
Downloading JBoss EAP from Red Hat Developer
Go to and log in with your credentials.
Select the version of JBoss EAP that you want to download. The latest version is 7.4.0 as of June 2023.
Select the platform that you want to download. You can choose between ZIP, Installer, or Container Image formats.
Click on the Download button and save the file to your preferred location.
Installing JBoss EAP on your local machine
The installation process depends on the format that you downloaded. Here are the instructions for each format:
jboss eap download installer
jboss eap runtime via ide
jboss eap on openshift sandbox
jboss eap 8.0 beta zip file
jboss eap server migration tool
jboss eap maven repository offliner
jboss eap quick starts guide
jboss eap javadoc api
jboss eap source code github
jboss eap-xp 4.0.0 patch
jboss eap manager console
jboss eap overview red hat developer
jboss eap cloud-ready architecture
jboss eap powerful management and automation
jboss eap world class developer productivity
jboss eap deployment options
jboss eap on-premise virtual environments
jboss eap rehost on hyperscalers
jboss eap replatform on openshift
jboss eap features and benefits
jboss eap java ee 7 certified
jboss eap optimized for container and cloud deployments
jboss eap modular and lightweight structure
jboss eap enterprise performance and scalability
jboss eap security subsystem elytron
red hat developer products eap download
red hat developer tutorials for cloud application development
red hat developer become a partner program
red hat developer ansible.com it automation product
red hat developer hybrid cloud access learning paths
red hat developer store buy products and services online
red hat developer marketplace try, buy, sell, and manage certified software
red hat developer community and open source resources
red hat developer the enterprisers project cio articles
red hat developer opensource.com topics and stories
red hat developer summit annual open source event
red hat developer ecosystem catalog find hardware, software, and cloud providers
jakarta ee can be cloud-native too article
jakarta ee apps on openshift kubernetes environment sandbox
eclipse microprofile for modernizing java applications article
eclipse microprofile apps on openshift sandbox tutorial
wildfly open source project for java applications website
wildfly download latest version zip file or installer jar file
wildfly quickstarts examples github repository
wildfly documentation user guide pdf or html format
wildfly forums community support and discussion
wildfly issues tracker report bugs or request features
undertow web server for java applications website
undertow documentation user guide pdf or html format
undertow forums community support and discussion
ZIP: This is the easiest format to install. You just need to unzip the file to any directory on your machine. For example, you can unzip it to C:\jboss-eap-7.4 on Windows or /opt/jboss-eap-7.4 on Linux.
Installer: This is a graphical format that guides you through the installation steps. You need to run the executable file that you downloaded and follow the instructions on the screen. You can customize the installation options such as the installation path, the server configuration, and the security settings.
Container Image: This is a format that requires Docker or Podman to run. You need to pull the image from the Red Hat Container Catalog using the command docker pull registry.redhat.io/jboss-eap-7/eap74-openjdk11-openshift-rhel8:latest or podman pull registry.redhat.io/jboss-eap-7/eap74-openjdk11-openshift-rhel8:latest. Then, you can run the image using the command docker run -it -p 8080:8080 -p 9990:9990 registry.redhat.io/jboss-eap-7/eap74-openjdk11-openshift-rhel8:latest or podman run -it -p 8080:8080 -p 9990:9990 registry.redhat.io/jboss-eap-7/eap74-openjdk11-openshift-rhel8:latest. This will start a standalone server with default settings.
Running JBoss EAP as a standalone server or a managed domain
To run JBoss EAP as a standalone server or a managed domain, you need to use the scripts that are provided in the bin directory of your installation. Here are the commands for each mode:
Standalone server: To start a standalone server with the default configuration, use the command standalone.bat on Windows or ./standalone.sh on Linux. This will start the server on port 8080 and the management console on port 9990. You can access the console by opening in your browser. You can also specify a different configuration file by using the -c option. For example, you can use standalone.bat -c standalone-full.xml or ./standalone.sh -c standalone-full.xml to start the server with the full profile that includes more services and features.
Managed domain: To start a managed domain, you need to run two scripts: one for the domain controller and one for the host controller. The domain controller is responsible for managing the configuration and deployment of the servers in the domain. The host controller is responsible for running and communicating with the servers on a specific host. To start the domain controller, use the command domain.bat on Windows or ./domain.sh on Linux. This will start the domain controller on port 9990 and the management console on port 9990. You can access the console by opening in your browser. To start the host controller, use the command domain.bat --host-config=host.xml on Windows or ./domain.sh --host-config=host.xml on Linux. This will start the host controller and connect it to the domain controller. You can also specify a different host configuration file by using the --host-config option. For example, you can use domain.bat --host-config=host-slave.xml or ./domain.sh --host-config=host-slave.xml to start a host controller as a slave of another host controller.
How to get started with JBoss EAP development
To get started with JBoss EAP development, you need to have some basic knowledge of Java and Jakarta EE development. You also need to have a Java Development Kit (JDK) installed on your machine. The recommended version is JDK 11, which is compatible with JBoss EAP 7.4. You can download JDK 11 from . Alternatively, you can use any other IDE that supports Eclipse plugins, such as Eclipse itself, IntelliJ IDEA, or Visual Studio Code.
Creating a simple Jakarta EE application with JBoss EAP
To create a simple Jakarta EE application with JBoss EAP, you can use a Maven archetype that generates a basic project structure and configuration for you. Here are the steps to create a simple Jakarta EE application using Red Hat CodeReady Studio:
Open Red Hat CodeReady Studio and select File > New > Maven Project.
In the New Maven Project wizard, select Create a simple project (skip archetype selection) and click Next.
In the next page, enter the following details for your project:
Group Id: A unique identifier for your project, such as com.example.
Artifact Id: A name for your project, such as hello-jakarta.
Packaging: The type of packaging for your project, such as war.
Name: A descriptive name for your project, such as Hello Jakarta.
Description: A brief description of your project, such as A simple Jakarta EE application.
Click Finish to create your project.
In the Project Explorer view, right-click on your project and select Properties.
In the Properties dialog, select Project Facets and check the following facets:
Jakarta EE Web 8: This enables the Jakarta EE Web profile for your project.
Jakarta Server Faces 2.3: This enables the Jakarta Server Faces (JSF) technology for your project.
Jakarta Servlet 4.0: This enables the Jakarta Servlet technology for your project.
Click Apply and Close to save your changes.
In the Project Explorer view, expand your project and open the pom.xml file in the editor. This is the file that defines the dependencies and plugins for your project. You need to add the following dependency to your pom.xml file:
<dependency> <groupId>org.jboss.spec.javax.faces</groupId> <artifactId>jboss-jsf-api_2.3_spec</artifactId> <scope>provided</scope> </dependency>
This dependency provides the JSF API for your project. The scope is set to provided because JBoss EAP already provides the JSF implementation. Save your changes and wait for Maven to update your project.
In the Project Explorer view, right-click on your project and select New > Other. In the New wizard, select JBoss Tools Web > JSF > JSF Page and click Next.
In the next page, enter the following details for your JSF page:
File name: A name for your JSF page, such as index.xhtml.
Template: A template for your JSF page, such as HTML5 Page.
Use Facelets Template: Check this option to use Facelets as the view technology for your JSF page.
Click Finish to create your JSF page.
In the editor, you will see a basic HTML5 page with some JSF tags. You can modify this page to add some content and logic. For example, you can add the following code inside the <body> tag:
<h1>Hello Jakarta!</h1> <p>This is a simple Jakarta EE application running on JBoss EAP.</p> <p>Enter your name:</p> <h:form> <h:inputText id="name" value="#helloBean.name" /> <h:commandButton value="Greet" action="#helloBean.greet" /> <h:outputText id="message" value="#helloBean.message" /> </h:form>
This code adds a form that allows the user to enter their name and get a greeting message. The <h:form>, <h:inputText>, <h:commandButton>, and <h:outputText> tags are JSF components that provide user interface elements. The #helloBean.name, #helloBean.greet, and #helloBean.message expressions are EL expressions that bind the components to a managed bean called helloBean.
To create the helloBean managed bean, you need to create a Java class that implements the logic for the greeting message. In the Project Explorer view, right-click on your project and select New > Class.
In the New Java Class wizard, enter the following details for your class:
Name: A name for your class, such as HelloBean.
Package: A package for your class, such as com.example.hello.
Click Finish to create your class.
In the editor, you will see an empty class with the package declaration and the class name. You need to add some annotations, fields, and methods to your class. For example, you can add the following code to your class:
package com.example.hello; import jakarta.enterprise.context.RequestScoped; import jakarta.inject.Named; @Named @RequestScoped public class HelloBean private String name; private String message; public String getName() return name; public void setName(String name) this.name = name; public String getMessage() return message; public void setMessage(String message) this.message = message; public String greet() message = "Hello, " + name + "!"; return null;
This code adds two annotations to the class: @Named and @RequestScoped. The @Named annotation makes the class a managed bean that can be accessed by EL expressions using its name, which is helloBean by default. The @RequestScoped annotation makes the bean have a request scope, which means that it is created and destroyed for each HTTP request. The code also adds two fields and their getters and setters: name and message. The name field holds the user input and the message field holds the greeting message. The code also adds a method called greet that generates the greeting message and assigns it to the message field. The method returns null to indicate that the JSF page does not need to navigate to another page.
Save your changes and wait for the project to build.
Using Red Hat CodeReady Studio to develop and deploy JBoss EAP applications
Red Hat CodeReady Studio provides many features and tools to help you develop and deploy JBoss EAP applications. Some of these features and tools are:
JBoss EAP server adapter: This is a plugin that allows you to create, start, stop, and debug JBoss EAP servers from within the IDE. You can also deploy your applications to the server and monitor the server logs and status.
JBoss EAP runtime detector: This is a plugin that automatically detects any JBoss EAP installations on your machine and adds them to the IDE as server runtimes. You can use these runtimes to create server adapters or launch configurations.
JBoss EAP project templates: These are templates that help you create JBoss EAP projects with predefined configurations and dependencies. You can use these templates to create Jakarta EE, Eclipse MicroProfile, Spring Boot, or Quarkus projects.
JBoss EAP wizards and editors: These are wizards and editors that help you create and edit various files and components for your JBoss EAP projects. You can use these wizards and editors to create and edit JSF pages, managed beans, web.xml files, persistence.xml files, standalone.xml files, domain.xml files, host.xml files, and more.
JBoss EAP tools: These are tools that help you perform various tasks for your JBoss EAP projects. You can use these tools to generate entities from tables, generate RESTful web services from entities, test RESTful web services, configure security realms, configure datasources, configure messaging resources, configure batch jobs, configure web services, configure logging, and more.
Using Eclipse MicroProfile to enhance your JBoss EAP applications
Eclipse MicroProfile is a set of specifications that provide additional capabilities for Jakarta EE applications. These capabilities include configuration, fault tolerance, health checks, metrics, open tracing, open API documentation, JWT propagation, REST client, reactive messaging, reactive streams operators, context propagation, GraphQL client, LRA coordination, and more. You can use Eclipse MicroProfile APIs to enhance your JBoss EAP applications with these capabilities. For example, you can use the @ConfigProperty annotation to inject configuration values from external sources into your managed beans. You can use the @Fallback, @Retry, @Timeout, @CircuitBreaker, @Bulkhead, and @Asynchronous annotations to define fault tolerance policies for your methods. You can use the @Health, @Liveness, @Readiness, and @HealthGroup annotations to define health check procedures for your applications. You can use the @Counted, @Gauge, @Timed, @Metered, @ConcurrentGauge, and @SimplyTimed annotations to collect metrics data for your methods. You can use the @Traced annotation to enable distributed tracing for your methods. You can use the @OpenAPIDefinition, @Info, @Contact, @License, @Server, @ExternalDocumentation, @Tag, @SecurityScheme, @SecurityRequirement, @Callback, @Components, @Schema, @APIResponse, @Operation, @Parameter, @RequestBody, @APIResponses, @Content, @MediaType, @Encoding, @Header, @Link, @LinkParameter, and @Extension annotations to document your RESTful web services using the OpenAPI standard. You can use the @LoginConfig and @DeclareRoles annotations to secure your applications using JWT tokens. You can use the RestClientBuilder or the @RegisterRestClient annotation to create and use REST clients for your applications. You can use the @Incoming and @Outgoing annotations to send and receive messages using reactive messaging. You can use the @GraphQlClientApi annotation to create and use GraphQL clients for your applications. You can use the LRA, LRA.Type, Complete, Compensate, Status, and Forget annotations to coordinate long-running actions across different services. You can use the other Eclipse MicroProfile specifications to add more capabilities to your applications.
How to get support and resources for JBoss EAP development
If you need any support or resources for JBoss EAP development, you can access the following sources:
Accessing the documentation and tutorials for JBoss EAP
You can access the official documentation and tutorials for JBoss EAP from the Red Hat Customer Portal at . Here, you can find guides and references for various topics, such as installation, configuration, administration, development, migration, security, performance, clustering, messaging, web services, batch processing, and more. You can also find tutorials and quickstarts that show you how to create and run simple JBoss EAP applications using different technologies and frameworks.
Joining the community and forums for JBoss EAP
You can join the community and forums for JBoss EAP from the Red Hat Developer website at . Here, you can find blogs, articles, videos, podcasts, webinars, events, and books that cover various aspects of JBoss EAP development. You can also find forums where you can ask questions, share ideas, and get answers from other developers and experts.
Getting product support and updates from Red Hat
If you have a subscription for JBoss EAP, you can get product support and updates from Red Hat. You can contact Red Hat support by phone, email, or web at . You can also access the knowledge base, solutions, cases, downloads, security advisories, and product life cycle information from the same website. You can also use Red Hat Subscription Management to manage your subscriptions and entitlements.
Conclusion
In this article, we have shown you how to download, install, and use JBoss EAP for your Java application development needs. We have also shown you some of the features and benefits of JBoss EAP, such as Jakarta EE 8 compliance, Eclipse MicroProfile support, cloud readiness, enterprise performance, security, management, and automation. We have also shown you how to use Red Hat CodeReady Studio as an IDE for JBoss EAP development. We have also shown you how to access the documentation, tutorials, community, forums, support, and updates for JBoss EAP. We hope that this article has helped you get started with JBoss EAP development and that you will enjoy using this powerful application platform.
Frequently Asked Questions (FAQs)
Q: What is the difference between WildFly and JBoss EAP?
A: WildFly is an open source project that provides a community version of JBoss EAP. JBoss EAP is a product that provides a commercial version of WildFly with additional features, support, and updates from Red Hat.
Q: How can I migrate my existing Java EE applications to JBoss EAP?
A: You can use the Red Hat Application Migration Toolkit (RHAMT) to analyze and migrate your existing Java EE applications to JBoss EAP. RHAMT is a tool that scans your applications and identifies potential issues and migration tasks. It also provides guidance and reports to help you perform the migration. You can download RHAMT from .
Q: How can I test and debug my JBoss EAP applications?
A: You can use the JBoss EAP server adapter in Red Hat CodeReady Studio to test and debug your JBoss EAP applications. You can create a server adapter for your JBoss EAP server and add your projects to the server. You can then start, stop, and restart the server from the IDE. You can also deploy your applications to the server and monitor the server logs and status. You can also use the debugger to set breakpoints, inspect variables, and step through your code.
Q: How can I optimize the performance of my JBoss EAP applications?
A: You can use various tools and techniques to optimize the performance of your JBoss EAP applications. Some of these tools and techniques are:
JBoss Performance Tuning Guide: This is a guide that provides best practices and recommendations for tuning the performance of JBoss EAP and its components. You can access the guide from .
JBoss CLI: This is a tool that allows you to configure and manage your JBoss EAP server using commands. You can use this tool to adjust various parameters and settings that affect the performance of your server, such as memory, threads, pools, caches, logging, etc.
JBoss Byteman: This is a tool that allows you to inject Java code into your running application without modifying the source code or recompiling. You can use this tool to monitor and measure the performance of your application, such as CPU usage, memory consumption, method execution time, etc.
JBoss Profiler: This is a tool that allows you to profile your running application and identify performance bottlenecks, such as slow methods, memory leaks, thread contention, etc. You can use this tool to generate reports and graphs that show the performance data of your application.
44f88ac181
Comments