---
title: Configuring HTTP Servlet Extensions
description: You must first configure one or more servlet extensions to use the HTTP connection handler.
component: pingdirectory
version: 11.0
page_id: pingdirectory:pingdirectory_server_administration_guide:pd_ds_config_http_servlet_ext
canonical_url: https://docs.pingidentity.com/pingdirectory/11.0/pingdirectory_server_administration_guide/pd_ds_config_http_servlet_ext.html
revdate: September 13, 2023
page_aliases: ["pd_ds_web_app_servlet_extensions.adoc", "pd_ds_java_based_servlet_extensions.adoc", "pd_ds_groovy_scripted_extensions.adoc"]
section_ids:
  configuring-web-application-servlet-extensions: Configuring web application servlet extensions
  about-this-task: About this task
  steps: Steps
  result: Result
  configuring-java-based-servlet-extensions: Configuring Java-based servlet extensions
  about-this-task-2: About this task
  steps-2: Steps
  example: Example:
  configuring-groovy-scripted-extensions: Configuring Groovy-scripted extensions
  steps-3: Steps
---

# Configuring HTTP Servlet Extensions

You must first configure one or more servlet extensions to use the HTTP connection handler.

Servlet extensions are responsible for obtaining Java servlets, using the Java Servlet 3.0 specification as described in JSR 315, and registering them to be invoked using one or more context paths. If you plan to deploy the System for Cross-domain Identity Management (SCIM) extension, follow the instructions in [SCIM 2.0 servlet extension configuration](../managing_scim_11_and_20_servlet_extensions/pd_proxy_manage_scim_2_servlet_ext.html). For custom servlet extensions created using the Server SDK, the process varies based on whether you are using a Java-based or Groovy-scripted extension.

## Configuring web application servlet extensions

### About this task

A web application can be deployed either as a WAR file that has been packaged according to the standard layout and containing a `web.xml` deployment descriptor, or from a directory containing the application's source components arranged in the standard layout.

### Steps

* When deploying a web application from a directory, specify the location of the `web.xml` deployment descriptor if it is not in the standard location.

* Specify the directory used by the server for temporary files.

### Result

At runtime, the web application has access to the server classes.

## Configuring Java-based servlet extensions

### About this task

For Java-based extensions, first use the Server SDK to create and build the extension bundle as described in the Server SDK documentation.

### Steps

* Use the `manage-extension` tool to install it.

  #### Example:

  ```shell
  $ bin/manage-extension --install/path/to/extension.zip
  ```

  The Java-based extension can then be configured for use in the server using `dsconfig` or the admin console. Create a new Third Party HTTP Servlet Extension, specifying the fully-qualified name for the `HTTPServletExtension` subclass in the `extension-class` property, and providing any appropriate arguments in the `extension-argument` property.

  |   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
  | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  |   | Web application and Servlet extensions run in a shared embedded web application server environment. Incompatibilities or conflicts might arise from use of different versions of commonly used JARs or including frameworks such as loggers, Spring components, JAX-RS implementations or other resources that might require a dedicated Java virtual machine (JVM) environment. After introducing a custom extension, check the server error log for an indication that the extension loaded successfully. The error log might also contain debug information if the extension failed to load with an initialization exception or did not complete initialization. |

## Configuring Groovy-scripted extensions

### Steps

1. For Groovy-scripted extensions, place the necessary Groovy scripts in the appropriate directory based on the package for those scripts after the `lib/groovy-scripted-extensions` directory.

2. Create a new Groovy Scripted HTTP Servlet extension, specifying the fully-qualified Groovy class name for the `script-class` property, and providing any appropriate arguments in the `script-argument` property.
