## Additional Components

### Table of Contents

- Introduction
- Downloading
- Building
- Components list
  1. Full commons-logging implementation
  2. Web Services support (JSR 109)
  3. JMX Remote Lifecycle Listener

### Introduction

A number of additional components may be used with Apache Tomcat. These components may be built by users should they need them or they can be downloaded from one of the mirrors.

### Downloading

To download the extras components open the Tomcat download page and select "Browse" from the Quick Navigation Links. The extras components can be found in bin/extras.

### Building

The additional components are built using the `extras` target of the standard Tomcat Ant script which is present in the source bundle of Tomcat.

The build process is the following:

- Follow the build instructions to build a Tomcat binary from the source bundle (note: it will be used by the build process of the additional components, but does not need to be actually used later on)
- Execute the command `ant extras` to run the build script
- The additional components JARs will be placed in the `output/extras` folder
- Refer to the documentation below about the usage of these JARs

### Components list

#### Full commons-logging implementation

Tomcat uses a package renamed commons-logging API implementation which is hardcoded to use the java.util.logging API. The commons-logging additional component builds a full fledged package renamed commons-logging implementation which can be used to replace the implementation provided with Tomcat. See the logging page for usage instructions.

#### Web Services support (JSR 109)

Tomcat provides factories for JSR 109 which may be used to resolve web services references. Place the generated catalina-ws.jar as well as jaxrpc.jar and wsdl4j.jar (or another implementation of JSR 109) in the Tomcat lib folder.

Users should be aware that wsdl4j.jar is licensed under CPL 1.0 and not the Apache License version 2.0.

#### JMX Remote Lifecycle Listener

The JMX protocol requires the JMX server (Tomcat in this instance) to listen on two network ports. One of these ports can be fixed via configuration but the second is selected randomly. This makes it difficult to use JMX through a firewall. The JMX Remote Lifecycle Listener allows both ports to be fixed, simplifying the process of connecting to JMX through a firewall. See the listeners page for usage instructions.