Red Hat JBoss Web Server 5.0 release notes

Red Hat JBoss Web Server 5.0

For Use with the Red Hat JBoss Web Server 5.0

Red Hat Customer Content Services

Abstract

These release notes contain important information related to the Red Hat JBoss Web Server 5.0.

Preface

Welcome to the Red Hat JBoss Web Server version 5.0 release.

The JBoss Web Server is a fully integrated and certified set of components for hosting Java web applications. It consists of:

  • Apache Tomcat: a servlet container in accordance with the Java Servlet Specification. JBoss Web Server contains Apache Tomcat 9.
  • The Apache Tomcat Native Library: a Tomcat library, which improves Tomcat scalability, performance, and integration with native server technologies.
  • The tomcat-vault: an extension for the JBoss Web Server used for securely storing passwords and other sensitive information used by a JBoss Web Server.
  • The mod_cluster library: a library that allows communication between Apache Tomcat and the Apache HTTP Server’s mod_proxy_cluster module. This allows the Apache HTTP Server to be used as a load balancer for JBoss Web Server.

Chapter 1. Why we skipped Red Hat JBoss Web Server 4

The Red Hat JBoss Web Server 4 was only distributed as an embedded version of Apache Tomcat 8.5 in the SpringBoot runtime for Red Hat OpenShift Application Runtimes (RHOAR) and a stand-alone version was not released.

For more information on Red Hat OpenShift Application Runtimes, see: Red Hat Developer: Red Hat OpenShift Application Runtimes.

Chapter 2. Change to the structure of the Red Hat JBoss Web Server

The JBoss Web Server is now provided in two .zip archives:

  • An operating system independent package (jws-application-server-5.0.0.zip).
  • The operating system specific files (operating system native package), such as (jws-application-server-5.0.0.RHEL7-x86_64.zip).

This change allows our support team to maintain the JBoss Web Server JBoss Web Server easier than previous releases.

Chapter 3. Key new features and enhancements in the Red Hat JBoss Web Server 5.0

The improvements introduced in the Red Hat JBoss Web Server 5.0 include:

3.1. Based on Apache Tomcat 9.0.7:

The enhancements introduced by basing the JBoss Web Server 5.0 on Apache Tomcat 9.0.7 rather than Apache Tomcat 8 used by the JBoss Web Server 3.1 include:

3.1.1. HTTP/2 support

The Hypertext Transfer Protocols are standard methods of transmitting data between applications (such as servers and browsers) over the internet. HTTP/2 improves on HTTP/1.1 by providing enhancements such as:

  • header compression - reducing the size of the header transmitted by omitting implied information, and
  • multiple requests and responses over a single connection - using binary framing to break down response messages, as opposed to textual framing.

Using HTTP/2 with the JBoss Web Server:

  • is supported for encrypted connections over TLS (h2).
  • is not supported for unencrypted connections over TCP (h2c).

For configuration instructions, see: The Red Hat JBoss Web Server 5.0 Installation Guide - Enabling HTTP/2 for the Red Hat JBoss Web Server

3.1.2. Support for using OpenSSL for TLS support with the JSSE connectors (NIO and NIO2)

For JBoss Web Server 5.0, the Java Secure Socket Extension (JSSE) connectors (NIO and NIO2) can access OpenSSL directly though tomcat-native. This allows NIO and NIO2 connector to use OpenSSL without the APR connector.

3.1.3. The NIO connector is the default for HTTP/1.1 connections when the tomcat-native is installed

The JBoss Web Server 5.0 defaults to using the NIO connector for HTTP/1.1 connections when the tomcat-native libraries (for example APR) are installed.

To set APR as the default connector, set useAprConnector="true" on the AprLifecycleListener defined in the <JWS_HOME>/conf/server.xml and restart the JBoss Web Server.

For example:

<Listener className="org.apache.catalina.core.AprLifecycleListener"
    useAprConnector="true" SSLEngine="on"/>

For more information on the APR Lifecycle Listener, see: Apache Tomcat 9 Configuration Reference: The LifeCycle Listener Component - APR Lifecycle Listener

For an additional example of using the useAprConnector, see: Apache Tomcat 9: SSL/TLS Configuration HOW-TO - Edit the Tomcat Configuration File

3.1.4. Support for TLS virtual hosting (SNI)

Server Name Indication (SNI) using the SSLHostConfig element allows for more than one SSL configuration for a given connector (including multiple certificates for a given connector).

For more information on Server Name Indication, see: Apache Tomcat 9 Configuration Reference: The HTTP Connector - Nested Components

For information on configuring SSLHostConfig, see: Apache Tomcat 9 Configuration Reference: The HTTP Connector - SSL Support

3.2. System daemon integration scripts provided for the Red Hat Enterprise Linux users installing from .zip archives

Red Hat Enterprise Linux users installing JBoss Web Server from .zip archives are provided post-install scripts to assist with setting up JBoss Web Server as a systemd or SysV service.

Using the JBoss Web Server with a system daemon provides a method of starting the JBoss Web Server services at system boot. The system daemon also provides start, stop and status check functions.

For setup instructions see: The Red Hat JBoss Web Server 5.0 Installation Guide - Configuring JBoss Web Server to start at boot for .zip installations on Red Hat Enterprise Linux

3.3. The tomcat-vault installation process has been improved

The Tomcat Password Vault is included in the jws-application-server-5.0.0.zip file used for installing JBoss Web Server and is pre-installed at jws-5.0/tomcat/lib/tomcat-vault.jar and can be used once configured.

For Red Hat Enterprise Linux users installing JBoss Web Server from RPMs using YUM, the Tomcat vault can now be installed using YUM:

yum install jws5-tomcat-vault

3.4. The vault.properties file for tomcat-vault can be stored outside JWS_HOME

As of the JBoss Web Server 5.0, the vault.properties file for the tomcat-vault can be stored outside of <JWS_HOME> in the CATALINA_BASE directory (if set).

To set the CATALINA_BASE directory, follow the instructions in the section 'Advanced Configuration - Multiple Tomcat Instances' in the Running The Apache Tomcat 9.0 Servlet/JSP Container document found on the Apache Tomcat Website.

Note that the default location for CATALINA_BASE is <JWS_HOME>/tomcat/ (also known as CATALINA_HOME).

For more information on the tomcat-vault, see: Using a Password Vault with Red Hat JBoss Web Server 5.0

For more information on setting CATALINA_BASE, see: Apache Tomcat 9: Introduction - Directories and Files

3.5. Change in manager and host-manager webapp behavior

The manager and host-manager web-applications can now only be accessed from the localhost. This is a new default restriction within the context.xml configuration files of the manager applications set using the Remote Address Valve (RemoteAddrValve).

For example:

  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

To view or change this setting, see:

  • <JWS_HOME>/webapps/manager/META-INF/context.xml
  • <JWS_HOME>/webapps/host-manager/META-INF/context.xml

For more information on:

3.6. Change to mod_cluster 1.4 - a connector needs to be specified.

Previous versions of mod_cluster automatically determined which connector to use. As a result, mod_cluster defaulted to the AJP connector and this behavior was difficult to override.

To improve usability, the mod_cluster 1.4 (provided with the JBoss Web Server 5.0) requires a connector to be explicitly set. One or more of the following new attributes require configuration for mod_cluster 1.4:

  • connectorPort
  • connectorAddress

For example:

<Listener className="org.jboss.modcluster.container.tomcat.ModClusterListener"
    advertise="true"
    advertiseInterface="172.16.27.10"
    advertiseGroupAddress="224.0.1.105"
    advertisePort="23364"
    connectorPort="8009"
/>

For more information on using an Apache HTTP Server as a load balancer for JBoss Web Server, see: Red Hat JBoss Core Services 2.4.29: Apache HTTP Server Connectors and Load Balancing Guide - mod_cluster Connector

For additional information on this change, see: JBoss Developer JIRA: mod_cluster - Expose Tomcat configuration to explicitly specify a connector to register with the proxy

3.7. Allows the configuration of multiple properties files

The JBoss Web Server 5.0 includes the listener LoadExternalPropertiesListener, allowing users to load multiple .properties files. The files are specified using the file.N attribute where N specifies the order in which the property files are loaded.

For example:

<Listener className="org.apache.catalina.core.LoadExternalPropertiesListener"
        file.0="/path/to/file1.properties"
        file.1="/path/to/file2.properties"
        file.2="/path/to/file3.properties"
        overwrite="false" loadFirst="file.1" />

For more information on using multiple property files, the documentation has been included in jws-application-server-5.0.0.zip, see: <JWS_HOME>/webapps/docs/config/listeners.html#Load_external_properties_files_-_org.apache.catalina.core.LoadExternalPropertiesListener

3.8. Logging JBoss Web Server with log4j deprecated

Log4j is not supported for Red Hat JBoss Web Server 5.0 and is not provided by the Red Hat JBoss Web Server 5.0 packages or maven repository.

To use log4j with JBoss Web Server, log4j 2.x can be downloaded from the Apache Log4j 2 web site.

3.9. Changes to JBoss Web Server Plus

The JBoss Web Server Hibernate Engine is provided by the Red Hat JBoss Web Server 5.0 Maven Repository.

To download the JBoss Web Server Maven Repository (jboss-web-server-5.0.0.GA-maven-repository.zip), visit the Software Downloads page on the Red Hat Website (available to all JBoss Web Server 5.0 subscribers).

The Hibernate Engine is not provided as a separate .zip package as it was for previous versions of JBoss Web Server.

3.10. Tomcat embedded included in the Red Hat JBoss Web Server 5.0 maven repository

Embedding tomcat in java applications can be useful for development and providing a dedicated instance of tomcat for shipping java applications to customers.

Tomcat embedded has been included in the Red Hat JBoss Web Server 5.0 Maven Repository.

To download the JBoss Web Server Maven Repository (jboss-web-server-5.0.0.GA-maven-repository.zip), visit the Software Downloads page on the Red Hat Website (available to all JBoss Web Server 5.0 subscribers).

The tomcat embedded artifacts can be found in the maven repository at: jboss-web-server-5.0.0.GA-maven-repository/maven-repository/org/apache/tomcat/embed/

For more information on using tomcat embedded, see the Apache Tomcat 9.0 API documentation: org.apache.catalina.startup - Class Tomcat.

Chapter 4. Technology Previews for the Red Hat JBoss Web Server 5.0

4.1. Technology Preview: Deploying Narayana on the Red Hat JBoss Web Server 5.0

Important

Narayana on Red Hat JBoss Web Server 5.0 is a Technology Preview feature only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs), might not be functionally complete, and Red Hat does not recommend to use them for production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.

For more information on Red Hat Technology Preview features support scope, see https://access.redhat.com/support/offerings/techpreview/.

Known issues

At the time of release, the known issues for using Narayana on JBoss Web Server include:

  • JWS-976 - jboss-transaction-api_1.2_spec jar needed in JWS' Tomcat /lib directory.
  • JWS-1028 - Failures in jBPM embedded use case with H2 database.
  • JBPM-7347 - Tests failing due to DBCP integration.

Narayana on JBoss Web Server

Narayana on JBoss Web Server is currently in a technical preview status and has no official accompanying documentation at this time.

The Narayana transactions tookit provides support for applications developed using the following standards-based transaction protocols:

  • JTA
  • JTS
  • Web-Service Transactions
  • REST Transactions
  • STM
  • XATMI/TX

Narayana on JBoss Web Server is being developed for integration with Red Hat Process Automation Manager. Narayana on JBoss Web Server also provides a connection with PostgreSQL servers using a Tomcat JDBC Connection Pool.

To see an example of configuring Narayana on JBoss Web Server and PostgreSQL, visit tomcat JBoss Transaction Manager with PostgreSQL and Debugging Narayana on tomcat. This example shows how to configure a connection between Narayana on JBoss Web Server and PostgreSQL, using a Docker container to provide the PostgreSQL database.

To use Narayana on the JBoss Web Server, add the JBoss transaction API (Available at the MvnRepository) to the JWS_HOME/tomcat/lib/ directory.

Quickstarts: Narayana on JBoss Web Server

Explore Narayana on JBoss Web Server (tomcat) using example deployments.

Additional resources

Chapter 5. Installing the Red Hat JBoss Web Server 5.0

The JBoss Web Server 5.0 can be installed using one of the following sections of the installation guide:

Chapter 6. Upgrading JBoss Web Server

Note

The JBoss Web Server 5.0 can run on the same system as previous releases, however, this is not supported.

For systems using the JBoss Web Server 3.1, the recommended procedure for upgrading to the JBoss Web Server 5.0 is:

  1. Shutdown any running instances of JBoss Web Server 3.1.
  2. Backup the JBoss Web Server 3.1 installation and configuration files.
  3. Change the ports used by the JBoss Web Server 3.1 connectors if the ports used are 8080 or 8443.
  4. Install JBoss Web Server 5.0 using one of the following guides:

  5. Migrate your configuration from the JBoss Web Server 3.1

    Note

    The JBoss Web Server configuration files may have changed since the JBoss Web Server 3.1 release. It is recommended that you update the 5.0 version configuration files, rather than overwrite them with the configuration files from a different version (such as JBoss Web Server 3.1).

  6. Remove the JBoss Web Server 3.1:

    • For systems where JBoss Web Server 3.1 was installed from RPM packages, uninstall using:

      yum group remove jws3
    • For systems where JBoss Web Server 3.1 was installed from .zip archives, uninstall by deleting the JBoss Web Server 3.1 root directory.

Chapter 7. Resolved issues

See the JBoss Developer bug tracking software for a list of the resolved issues for Red Hat JBoss Web Server 5.0.

Chapter 8. Known issues

See the JBoss Developer bug tracking software for a list of the known issues for Red Hat JBoss Web Server 5.0.

Chapter 9. Components included in Red Hat JBoss Web Server 5.0

This release includes the following components:

ComponentVersionOperating System(s)CommentPackaging

Apache Tomcat 9

9.0.7

Red Hat Enterprise Linux

Servlet container, both standalone and embedded

standalone zip, maven repository

Hibernate distribution

5.1.8

Red Hat Enterprise Linux

Hibernate ORM and libraries

maven repository

ECJ

4.6.1

Red Hat Enterprise Linux

Eclipse compiler

standalone zip

APR

1.6.3

Red Hat Enterprise Linux

Apache Portable Runtime

native zip

OpenSSL

1.0.2n

Red Hat Enterprise Linux

Crypto libraries and openssl executable tool

native zip

Legal Notice

Copyright © 2018 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.