org.glassfish.jersey.server

## Class ServerProperties

- java.lang.Object
- - org.glassfish.jersey.server.ServerProperties

    public final class ServerProperties
    extends Object

Jersey server-side configuration properties.

Author:
  Marek Potociar, Libor Kramolis, Michal Gajdos, Martin Matula

### Field Summary

Fields
`static String` `APPLICATION_NAME` `String` property that defines the application name.
`static String` `BV_DISABLE_VALIDATE_ON_EXECUTABLE_OVERRIDE_CHECK` A Bean Validation (JSR-349) support customization property.
`static String` `BV_FEATURE_DISABLE` If `true` then disable Bean Validation support.
`static String` `BV_SEND_ERROR_IN_RESPONSE` A Bean Validation (JSR-349) support customization property.
`static String` `FEATURE_AUTO_DISCOVERY_DISABLE` If `true` then disable auto discovery on server.
`static String` `HTTP_METHOD_OVERRIDE` Defines configuration of HTTP method overriding.
`static String` `JSON_PROCESSING_FEATURE_DISABLE` If `true` then disable configuration of Json Processing (JSR-353) feature on server.
`static String` `LANGUAGE_MAPPINGS` Defines mapping of URI extensions to languages.
`static String` `LOCATION_HEADER_RELATIVE_URI_RESOLUTION_DISABLED` If `true` then Jersey will not attempt to resolve relative URIs in the `Location` http header against the request URI.
`static String` `LOCATION_HEADER_RELATIVE_URI_RESOLUTION_RFC7231` If `true` then Jersey will resolve relative URIs in the `Location` http header against the request URI according to RFC7231 (new HTTP Specification).
`static String` `MEDIA_TYPE_MAPPINGS` Defines mapping of URI extensions to media types.
`static String` `METAINF_SERVICES_LOOKUP_DISABLE` If `true` then disable META-INF/services lookup on server.
`static String` `MONITORING_ENABLED` If `true` then application monitoring will be enabled.
`static String` `MONITORING_STATISTICS_ENABLED` If `true` then calculation of monitoring statistics will be enabled.
`static String` `MONITORING_STATISTICS_MBEANS_ENABLED` If `true` then Jersey will expose MBeans with monitoring statistics.
`static String` `MONITORING_STATISTICS_REFRESH_INTERVAL` Interval (in `ms`) indicating how often will be monitoring statistics refreshed and `onStatistics` method called.
`static String` `MOXY_JSON_FEATURE_DISABLE` If `true` then disable configuration of MOXy Json feature on server.
`static String` `OUTBOUND_CONTENT_LENGTH_BUFFER` An integer value that defines the buffer size used to buffer server-side response entity in order to determine its size and set the value of HTTP `"Content-Length"` header.
`static String` `PROCESSING_RESPONSE_ERRORS_ENABLED` If property value is `true` then the errors raised during response processing are tried to handled using available `response error mappers`.
`static String` `PROVIDER_CLASSNAMES` Defines one or more class names that implement application-specific resources and providers.
`static String` `PROVIDER_CLASSPATH` Defines class-path that contains application-specific resources and providers.
`static String` `PROVIDER_PACKAGES` Defines one or more packages that contain application-specific resources and providers.
`static String` `PROVIDER_SCANNING_RECURSIVE` Sets the recursion strategy for package scanning.
`static String` `REDUCE_CONTEXT_PATH_SLASHES_ENABLED` If set to `true` then a container will ignore multiple slashes between a port and a context path and will resolve it as URI with only one slash.
`static String` `RESOURCE_VALIDATION_DISABLE` If `true` then the extensive validation of application resource model is disabled.
`static String` `RESOURCE_VALIDATION_IGNORE_ERRORS` If `true` then validation of application resource models does not fail even in case of a fatal validation errors.
`static String` `RESPONSE_SET_STATUS_OVER_SEND_ERROR` Whenever response status is `4xx` or `5xx` it is possible to choose between `sendError` or `setStatus` on container specific `Response` implementation.
`static String` `SUBRESOURCE_LOCATOR_CACHE_AGE` An integer value that defines the maximum age (in seconds) for cached for sub-resource locator models.
`static String` `SUBRESOURCE_LOCATOR_CACHE_JERSEY_RESOURCE_ENABLED` If `true` then Jersey will cache `Jersey resources` in addition to caching sub-resource locator classes and instances (which are cached by default).
`static String` `SUBRESOURCE_LOCATOR_CACHE_SIZE` An integer value that defines the size of cache for sub-resource locator models.
`static int` `SUBRESOURCE_LOCATOR_DEFAULT_CACHE_SIZE` The default sub-resource locator cache size (64).
`static String` `TRACING` Enable tracing support.
`static String` `TRACING_THRESHOLD` Set level o tracing information.
`static String` `WADL_FEATURE_DISABLE` If `true` then disable WADL generation.
`static String` `WADL_GENERATOR_CONFIG` If set the wadl generator configuration that provides a `WadlGenerator`.

### Method Summary

All Methods Static Methods Concrete Methods
`static <T> T` `getValue(Map<String,?> properties, jakarta.ws.rs.RuntimeType runtimeType, String key, T defaultValue, Class<T> type)` Get the value of the specified property.
`static <T> T` `getValue(Map<String,?> properties, String key, Class<T> type)` Get the value of the specified property.
`static <T> T` `getValue(Map<String,?> properties, String key, T defaultValue)` Get the value of the specified property.
`static <T> T` `getValue(Map<String,?> properties, String key, T defaultValue, Class<T> type)` Get the value of the specified property.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### PROVIDER_PACKAGES

    public static final String PROVIDER_PACKAGES

Defines one or more packages that contain application-specific resources and providers. If the property is set, the specified packages will be scanned for JAX-RS root resources (annotated with `@Path`) and providers (annotated with `@Provider`).

The property value MUST be an instance of `String` or `String[]` array. Each `String` instance represents one or more package names that MUST be separated only by characters declared in common delimiters: `" ,;\n"`.

A default value is not set.

The name of the configuration property is `"jersey.config.server.provider.packages"`.

See Also:
  Constant Field Values

#### PROVIDER_SCANNING_RECURSIVE

    public static final String PROVIDER_SCANNING_RECURSIVE

Sets the recursion strategy for package scanning. The value of `true` indicates that the `list of provided package names` should be scanned recursively including any nested packages. Value of `false` indicates that only packages in the list should be scanned. In such case any nested packages will be ignored.

The property value MUST be an instance of `Boolean` type or a `String` convertible to `Boolean` type.

A default value is `true`.

The name of the configuration property is `"jersey.config.server.provider.scanning.recursive"`.

See Also:
  `PROVIDER_PACKAGES`, Constant Field Values

#### PROVIDER_CLASSPATH

    public static final String PROVIDER_CLASSPATH

Defines class-path that contains application-specific resources and providers. If the property is set, the specified class-path will be scanned for JAX-RS root resources (annotated with `@Path`) and providers (annotated with `@Provider`). Each path element MUST be an absolute or relative directory, or a Jar file. The contents of a directory, including Java class files, jars files and sub-directories are scanned (recursively).

The property value MUST be an instance of `String` or `String[]` array. Each `String` instance represents one or more paths that MUST be separated only by characters declared in common delimiters: `" ,;\n"`.

A default value is not set.

The name of the configuration property is `"jersey.config.server.provider.classpath"`.

See Also:
  Constant Field Values

#### PROVIDER_CLASSNAMES

    public static final String PROVIDER_CLASSNAMES

Defines one or more class names that implement application-specific resources and providers. If the property is set, the specified classes will be instantiated and registered as either application JAX-RS root resources (annotated with `@Path`) or providers (annotated with `@Provider`).

The property value MUST be an instance of `String` or `String[]` array. Each `String` instance represents one or more class names that MUST be separated only by characters declared in common delimiters: `" ,;\n"`.

A default value is not set.

The name of the configuration property is `"jersey.config.server.provider.classnames"`.

See Also:
  Constant Field Values

#### MEDIA_TYPE_MAPPINGS

    public static final String MEDIA_TYPE_MAPPINGS

Defines mapping of URI extensions to media types. The property is used by `UriConnegFilter`. See it's javadoc for more information on media type mappings.

The property value MUST be an instance of `String`, `String[]` or `Map&lt;String, MediaType&gt;`. Each `String` instance represents one or more uri-extension-to-media-type map entries separated by a comma (","). Each map entry is a key-value pair separated by a colon (":"). Here is an example of an acceptable String value mapping txt extension to text/plain and xml extension to application/xml:

    txt : text/plain, xml : application/xml

A default value is not set.

The name of the configuration property is `"jersey.config.server.mediaTypeMappings"`.

See Also:
  Constant Field Values

#### LANGUAGE_MAPPINGS

    public static final String LANGUAGE_MAPPINGS

Defines mapping of URI extensions to languages. The property is used by `UriConnegFilter`. See it's javadoc for more information on language mappings.

The property value MUST be an instance of `String`, `String[]` or `Map&lt;String, String&gt;`. Each `String` instance represents one or more uri-extension-to-language map entries separated by a comma (","). Each map entry is a key-value pair separated by a colon (":"). Here is an example of an acceptable String value mapping english extension to "en" value of Content-Language header and french extension to "fr" Content-Language header value:

    english : en, french : fr

A default value is not set.

The name of the configuration property is `"jersey.config.server.languageMappings"`.

See Also:
  Constant Field Values

#### HTTP_METHOD_OVERRIDE

    public static final String HTTP_METHOD_OVERRIDE

Defines configuration of HTTP method overriding. This property is used by `HttpMethodOverrideFilter` to determine where it should look for method override information (e.g. request header or query parameters). `HttpMethodOverrideFilter.Source` enum lists the allowed property values.

The property value must be an instance of `String`, `String[]`, `Source` or `Source[]`. Each `String` instance represents one or more class names separated by characters declared in common delimiters: `" ,;\n"`.

The default value is `"HEADER, QUERY"`.

The name of the configuration property is `"jersey.config.server.httpMethodOverride"`.

See Also:
  Constant Field Values

#### WADL_GENERATOR_CONFIG

    public static final String WADL_GENERATOR_CONFIG

If set the wadl generator configuration that provides a `WadlGenerator`. If this property is not set the default wadl generator will be used for generating wadl.

The type of this property must be a subclass or an instance of a subclass of `WadlGeneratorConfig`.

The name of the configuration property is `"jersey.config.server.wadl.generatorConfig"`.

See Also:
  Constant Field Values

#### WADL_FEATURE_DISABLE

    public static final String WADL_FEATURE_DISABLE

If `true` then disable WADL generation. By default WADL generation is automatically enabled, if JAXB is present in the classpath.

The default value is `false`.

The name of the configuration property is `"jersey.config.server.wadl.disableWadl"`.

See Also:
  Constant Field Values

#### BV_FEATURE_DISABLE

    public static final String BV_FEATURE_DISABLE

If `true` then disable Bean Validation support. By default Bean Validation (JSR-349) is automatically enabled, if `org.glassfish.jersey.ext::jersey-bean-validation` Jersey module is present in the classpath.

The default value is `false`.

The name of the configuration property is `"jersey.config.beanValidation.disable.server"`.

See Also:
  Constant Field Values

#### BV_DISABLE_VALIDATE_ON_EXECUTABLE_OVERRIDE_CHECK

    public static final String BV_DISABLE_VALIDATE_ON_EXECUTABLE_OVERRIDE_CHECK

A Bean Validation (JSR-349) support customization property. If `true` the check whether the overriding / implementing methods are annotated with `jakarta.validation.executable.ValidateOnExecution` as well as one of their predecessor (in hierarchy) is disabled.

By default this checks is automatically enabled, unless the Bean Validation support is disabled explicitly (see `BV_FEATURE_DISABLE`).

The default value is `false`.

The name of the configuration property is `"jersey.config.beanValidation.disable.validateOnExecutableCheck.server"`.

See Also:
  `jakarta.validation.executable.ValidateOnExecution`, Constant Field Values

#### BV_SEND_ERROR_IN_RESPONSE

    public static final String BV_SEND_ERROR_IN_RESPONSE

A Bean Validation (JSR-349) support customization property. If set to `true` and Bean Validation support has not been explicitly disabled (see `BV_FEATURE_DISABLE`), the validation error information will be sent in the entity of the returned `Response`.

The default value is `false`. This means that in case of an error response caused by a Bean Validation error, only a status code is sent in the server `Response` by default.

The name of the configuration property is `"jersey.config.beanValidation.enableOutputValidationErrorEntity.server"`.

See Also:
  Constant Field Values

#### REDUCE_CONTEXT_PATH_SLASHES_ENABLED

    public static final String REDUCE_CONTEXT_PATH_SLASHES_ENABLED

If set to `true` then a container will ignore multiple slashes between a port and a context path and will resolve it as URI with only one slash.

The default value is `false`. This means that in case of multiple slashes a container will match with the address with the same number of slashes before a context path.

The property influences only Grizzly Container from containers which are supported by Jersey. Other containers have limited or disabled usage of a context path.

The name of the configuration property is `"jersey.config.server.reduceContextPathSlashes.enabled"`.

See Also:
  Constant Field Values

#### FEATURE_AUTO_DISCOVERY_DISABLE

    public static final String FEATURE_AUTO_DISCOVERY_DISABLE

If `true` then disable auto discovery on server. By default auto discovery is automatically enabled if global property "jersey.config.disableAutoDiscovery" is not disabled. If set then the server property value overrides the global property value.

The default value is `false`.

The name of the configuration property is `"jersey.config.server.disableAutoDiscovery"`.

This constant is an alias for `CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE_SERVER`

See Also:
  `CommonProperties.FEATURE_AUTO_DISCOVERY_DISABLE`, Constant Field Values

#### OUTBOUND_CONTENT_LENGTH_BUFFER

    public static final String OUTBOUND_CONTENT_LENGTH_BUFFER

An integer value that defines the buffer size used to buffer server-side response entity in order to determine its size and set the value of HTTP `"Content-Length"` header.

If the entity size exceeds the configured buffer size, the buffering would be cancelled and the entity size would not be determined. Value less or equal to zero disable the buffering of the entity at all.

This property can be used on the server side to override the outbound message buffer size value - default or the global custom value set using the "jersey.config.contentLength.buffer" global property.

The default value is `8192`.

The name of the configuration property is `"jersey.config.server.contentLength.buffer"`.

This constant is an alias for `CommonProperties.OUTBOUND_CONTENT_LENGTH_BUFFER_SERVER`

Since:
  2.2
See Also:
  Constant Field Values

#### JSON_PROCESSING_FEATURE_DISABLE

    public static final String JSON_PROCESSING_FEATURE_DISABLE

If `true` then disable configuration of Json Processing (JSR-353) feature on server. By default Json Processing is automatically enabled if global property "jersey.config.disableJsonProcessing" is not disabled. If set then the server property value overrides the global property value.

The default value is `false`.

The name of the configuration property is `"jersey.config.server.disableJsonProcessing"`.

This constant is an alias for `CommonProperties.JSON_PROCESSING_FEATURE_DISABLE_SERVER`

See Also:
  `CommonProperties.JSON_PROCESSING_FEATURE_DISABLE`, Constant Field Values

#### METAINF_SERVICES_LOOKUP_DISABLE

    public static final String METAINF_SERVICES_LOOKUP_DISABLE

If `true` then disable META-INF/services lookup on server. By default Jersey looks up SPI implementations described by META-INF/services/* files. Then you can register appropriate provider classes by `Application`.

The default value is `false`.

The name of the configuration property is `"jersey.config.server.disableMetainfServicesLookup"`.

This constant is an alias for `CommonProperties.METAINF_SERVICES_LOOKUP_DISABLE_SERVER`

Since:
  2.1
See Also:
  `CommonProperties.METAINF_SERVICES_LOOKUP_DISABLE`, Constant Field Values

#### MOXY_JSON_FEATURE_DISABLE

    public static final String MOXY_JSON_FEATURE_DISABLE

If `true` then disable configuration of MOXy Json feature on server. By default MOXy Json is automatically enabled if global property "jersey.config.disableMoxyJson" is not disabled. If set then the server property value overrides the global property value.

The default value is `false`.

The name of the configuration property is `"jersey.config.server.disableMoxyJson"`.

This constant is an alias for `CommonProperties.MOXY_JSON_FEATURE_DISABLE_SERVER`

See Also:
  `CommonProperties.MOXY_JSON_FEATURE_DISABLE`, Constant Field Values

#### RESOURCE_VALIDATION_DISABLE

    public static final String RESOURCE_VALIDATION_DISABLE

If `true` then the extensive validation of application resource model is disabled. This impacts both the validation of root resources during deployment as well as validation of any sub resources returned from sub-resource locators.

This option is typically used for performance purpose. Note however that in case the application resource models are not valid, setting the property to `true` can cause invalid behaviour and hard to diagnose issues at runtime.

By default the resource validation is run on models which are created either from the supplied resource class or instance as well as on any directly provided `resource` models.

The default value is `false`.

The name of the configuration property is `"jersey.config.server.resource.validation.disable"`.

See Also:
  `RESOURCE_VALIDATION_IGNORE_ERRORS`, Constant Field Values

#### RESOURCE_VALIDATION_IGNORE_ERRORS

    public static final String RESOURCE_VALIDATION_IGNORE_ERRORS

If `true` then validation of application resource models does not fail even in case of a fatal validation errors. All resource model validation issues are still output to the log, unless the resource model validation is completely disabled (see `RESOURCE_VALIDATION_DISABLE`). This impacts both the validation of root resources during deployment as well as validation of any sub resources returned from sub-resource locators. The option is typically used during development and testing.

The default value is `false`.

The name of the configuration property is `"jersey.config.server.resource.validation.ignoreErrors"`.

See Also:
  `RESOURCE_VALIDATION_DISABLE`, Constant Field Values

#### MONITORING_ENABLED

    public static final String MONITORING_ENABLED

If `true` then application monitoring will be enabled. This will enable the possibility of injecting `ApplicationInfo` into resource and providers.

The default value is `false`.

The name of the configuration property is `"jersey.config.server.monitoring.enabled"`.

Since:
  2.12
See Also:
  Constant Field Values

#### MONITORING_STATISTICS_ENABLED

    public static final String MONITORING_STATISTICS_ENABLED

If `true` then calculation of monitoring statistics will be enabled. This will enable the possibility of injecting `MonitoringStatistics` into resource and providers and also the registered listeners implementing `MonitoringStatisticsListener` will be called when statistics are available. Monitoring statistics extends basic monitoring feature. Therefore when enabled, the monitoring gets automatically enabled too (the same result as setting the property `MONITORING_ENABLED` `true`). Enabling statistics has negative performance impact and therefore should be enabled only when needed.

The default value is `false`.

The name of the configuration property is `"jersey.config.server.monitoring.statistics.enabled"`.

See Also:
  `MonitoringStatistics`, `MonitoringStatisticsListener`, `MONITORING_ENABLED`, Constant Field Values

#### MONITORING_STATISTICS_MBEANS_ENABLED

    public static final String MONITORING_STATISTICS_MBEANS_ENABLED

If `true` then Jersey will expose MBeans with monitoring statistics. Exposed JMX MBeans are based on `MonitoringStatistics` and therefore when they are enabled, also the calculation of monitoring statistics needs to be enabled. Therefore if this property is `true` the calculation of monitoring statistics is automatically enabled (the same result as setting the property `MONITORING_STATISTICS_ENABLED` to `true`).

Enabling statistics MBeans has negative performance impact and therefore should be enabled only when needed.

The default value is `false`.

The name of the configuration property is `"jersey.config.server.monitoring.statistics.mbeans.enabled"`.

See Also:
  `MONITORING_STATISTICS_ENABLED`, Constant Field Values

#### MONITORING_STATISTICS_REFRESH_INTERVAL

    public static final String MONITORING_STATISTICS_REFRESH_INTERVAL

Interval (in `ms`) indicating how often will be monitoring statistics refreshed and `onStatistics` method called.

The default value is `500`.

The name of the configuration property is `"jersey.config.server.monitoring.statistics.refresh.interval"`.

Since:
  2.10
See Also:
  Constant Field Values

#### APPLICATION_NAME

    public static final String APPLICATION_NAME

`String` property that defines the application name. The name is an arbitrary user defined name which is used to distinguish between Jersey applications in the case that more applications are deployed on the same runtime (container). The name can be used for example for purposes of monitoring by JMX when name identifies to which application deployed MBeans belong to. The name should be unique in the runtime.

The property is ignored if the application name is set programmatically by `ResourceConfig.getApplicationName()`.

There is no default value.

The name of the configuration property is `"jersey.config.server.application.name"`.

See Also:
  Constant Field Values

#### TRACING

    public static final String TRACING

Enable tracing support. It allows service developer to get diagnostic information about request processing by Jersey. Those diagnostic/tracing information are returned in response headers (`X-Jersey-Tracing-nnn`). The feature should not be switched on on production environment.

Allowed values:

- `OFF` - tracing support is disabled.
- `ON_DEMAND` - tracing support is in 'stand by' mode, it is enabled on demand by existence of request HTTP header
- `ALL` - tracing support is enabled for every request.

Type of the property value is `String`. The default value is `"OFF"`.

The name of the configuration property is `"jersey.config.server.tracing.type"`.

Since:
  2.3
See Also:
  Constant Field Values

#### TRACING_THRESHOLD

    public static final String TRACING_THRESHOLD

Set level o tracing information. The property allows to set application default level o diagnostic information. Tracing level can be changed for each request by specifying request HTTP header `X-Jersey-Tracing-Threshold`.

Allowed values:

- `SUMMARY`
- `TRACE`
- `VERBOSE`

Type of the property value is `String`. The default value is `"TRACE"`.

The name of the configuration property is `"jersey.config.server.tracing.threshold"`.

Since:
  2.3
See Also:
  `TRACING`, Constant Field Values

#### RESPONSE_SET_STATUS_OVER_SEND_ERROR

    public static final String RESPONSE_SET_STATUS_OVER_SEND_ERROR

Whenever response status is `4xx` or `5xx` it is possible to choose between `sendError` or `setStatus` on container specific `Response` implementation. E.g. on servlet container Jersey can call `HttpServletResponse.setStatus(...)` or `HttpServletResponse.sendError(...)`.

Calling `sendError(...)` method usually resets entity, response headers and provide error page for specified status code (e.g. servlet `error-page` configuration). However if you want to post-process response (e.g. by servlet filter) the only way to do it is calling `setStatus(...)` on container Response object.

If property value is `true` the method `Response.setStatus(...)` is used over default `Response.sendError(...)`.

Type of the property value is `boolean`. The default value is `false`.

The name of the configuration property is `"jersey.config.server.response.setStatusOverSendError"`.

Since:
  2.5
See Also:
  Constant Field Values

#### PROCESSING_RESPONSE_ERRORS_ENABLED

    public static final String PROCESSING_RESPONSE_ERRORS_ENABLED

If property value is `true` then the errors raised during response processing are tried to handled using available `response error mappers`.

Type of the property value is `boolean`. The default value is `false`.

The name of the configuration property is `"jersey.config.server.exception.processResponseErrors"`.

Since:
  2.8
See Also:
  Constant Field Values

#### SUBRESOURCE_LOCATOR_CACHE_SIZE

    public static final String SUBRESOURCE_LOCATOR_CACHE_SIZE

An integer value that defines the size of cache for sub-resource locator models. The cache is used to provide better performance for application that uses JAX-RS sub-resource locators.

The default value is 64.

The name of the configuration property is `"jersey.config.server.subresource.cache.size"`.

Since:
  2.16
See Also:
  `SUBRESOURCE_LOCATOR_DEFAULT_CACHE_SIZE`, `SUBRESOURCE_LOCATOR_CACHE_AGE`, Constant Field Values

#### SUBRESOURCE_LOCATOR_DEFAULT_CACHE_SIZE

    public static final int SUBRESOURCE_LOCATOR_DEFAULT_CACHE_SIZE

The default sub-resource locator cache size (64).

Since:
  2.16
See Also:
  `SUBRESOURCE_LOCATOR_CACHE_SIZE`, Constant Field Values

#### SUBRESOURCE_LOCATOR_CACHE_AGE

    public static final String SUBRESOURCE_LOCATOR_CACHE_AGE

An integer value that defines the maximum age (in seconds) for cached for sub-resource locator models. The age of an cache entry is defined as the time since the last access (read) to the entry in the cache.

Entry aging is not enabled by default.

The name of the configuration property is `"jersey.config.server.subresource.cache.age"`.

Since:
  2.16
See Also:
  `SUBRESOURCE_LOCATOR_CACHE_SIZE`, Constant Field Values

#### SUBRESOURCE_LOCATOR_CACHE_JERSEY_RESOURCE_ENABLED

    public static final String SUBRESOURCE_LOCATOR_CACHE_JERSEY_RESOURCE_ENABLED

If `true` then Jersey will cache `Jersey resources` in addition to caching sub-resource locator classes and instances (which are cached by default).

To make sure the caching is effective in this case you need to return same Jersey Resource instances for same input parameters from resource method. This means that generating new Jersey Resource instances for same input parameters would not have any performance effect and it would only fill-up the cache.

The default value is `false`.

The name of the configuration property is `"jersey.config.server.subresource.cache.jersey.resource.enabled"`.

See Also:
  Constant Field Values

#### LOCATION_HEADER_RELATIVE_URI_RESOLUTION_RFC7231

    public static final String LOCATION_HEADER_RELATIVE_URI_RESOLUTION_RFC7231

If `true` then Jersey will resolve relative URIs in the `Location` http header against the request URI according to RFC7231 (new HTTP Specification).

This behaviour violates the JAX-RS 2.0 specification (which dates older than RFC7231). If `LOCATION_HEADER_RELATIVE_URI_RESOLUTION_DISABLED` is set to `true`, value of this property is not taken into account.

The default value is `false` (JAX-RS 2.0 compliant).

The name of the configuration property is `"jersey.config.server.headers.location.relative.resolution.rfc7231"`.

Since:
  2.22.1
See Also:
  Constant Field Values

#### LOCATION_HEADER_RELATIVE_URI_RESOLUTION_DISABLED

    public static final String LOCATION_HEADER_RELATIVE_URI_RESOLUTION_DISABLED

If `true` then Jersey will not attempt to resolve relative URIs in the `Location` http header against the request URI.

The default value is `false`.

The name of the configuration property is `"jersey.config.server.headers.location.relative.resolution.disabled"`.

Since:
  2.22
See Also:
  Constant Field Values

### Method Detail

#### getValue

    public static <T> T getValue(Map<String,?> properties,
                                 String key,
                                 Class<T> type)

Get the value of the specified property. If the property is not set or the real value type is not compatible with the specified value type, returns `null`.

Type Parameters:
  `T` - Type of the property value.
Parameters:
  `properties` - Map of properties to get the property value from.
  `key` - Name of the property.
  `type` - Type to retrieve the value as.
Returns:
  Value of the property or `null`.
Since:
  2.8

#### getValue

    public static <T> T getValue(Map<String,?> properties,
                                 String key,
                                 T defaultValue)

Get the value of the specified property. If the property is not set or the real value type is not compatible with `defaultValue` type, the specified `defaultValue` is returned. Calling this method is equivalent to calling `ServerProperties.getValue(properties, key, defaultValue, (Class&lt;T&gt;) defaultValue.getClass())`.

Type Parameters:
  `T` - Type of the property value.
Parameters:
  `properties` - Map of properties to get the property value from.
  `key` - Name of the property.
  `defaultValue` - Default value if property is not registered
Returns:
  Value of the property or `null`.
Since:
  2.8

#### getValue

    public static <T> T getValue(Map<String,?> properties,
                                 String key,
                                 T defaultValue,
                                 Class<T> type)

Get the value of the specified property. If the property is not set or the real value type is not compatible with the specified value type, returns `defaultValue`.

Type Parameters:
  `T` - Type of the property value.
Parameters:
  `properties` - Map of properties to get the property value from.
  `key` - Name of the property.
  `defaultValue` - Default value if property is not registered
  `type` - Type to retrieve the value as.
Returns:
  Value of the property or `null`.
Since:
  2.8

#### getValue

    public static <T> T getValue(Map<String,?> properties,
                                 jakarta.ws.rs.RuntimeType runtimeType,
                                 String key,
                                 T defaultValue,
                                 Class<T> type)

Get the value of the specified property. If the property is not set or the real value type is not compatible with the specified value type, returns `defaultValue`.

Type Parameters:
  `T` - Type of the property value.
Parameters:
  `properties` - Map of properties to get the property value from.
  `runtimeType` - Runtime type which is used to check whether there is a property with the same `key` but post-fixed by runtime type (`.server` or `.client`) which would override the `key` property.
  `key` - Name of the property.
  `defaultValue` - Default value if property is not registered
  `type` - Type to retrieve the value as.
Returns:
  Value of the property or `null`.
Since:
  2.8