Class JerseyWebTarget
- java.lang.Object
-
- org.glassfish.jersey.client.JerseyWebTarget
-
- All Implemented Interfaces:
WebTarget,Configurable<WebTarget>,Initializable<JerseyWebTarget>
public class JerseyWebTarget extends Object implements WebTarget, Initializable<JerseyWebTarget>
Jersey implementation ofJAX-RS client targetcontract.- Author:
- Marek Potociar
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedJerseyWebTarget(UriBuilder uriBuilder, ClientConfig clientConfig)Create new web target instance.protectedJerseyWebTarget(UriBuilder uriBuilder, JerseyWebTarget that)Create new web target instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ClientConfiggetConfiguration()Get a live view of an internal configuration state of this configurable instance.URIgetUri()Get the URI identifying the resource.UriBuildergetUriBuilder()Get the URI builder initialized with theURIof the current resource target.JerseyWebTargetmatrixParam(String name, Object... values)Create a newWebTargetinstance by appending a matrix parameter to the existing set of matrix parameters of the current final segment of the URI of the current target instance.JerseyWebTargetpath(String path)Create a newWebTargetinstance by appending path to the URI of the current target instance.JerseyWebTargetpreInitialize()Pre-initializes the runtime and runtimeconfigurationof this component in order to improve performance during the first request.JerseyWebTargetproperty(String name, Object value)Set the new configuration property, if already set, the existing value of the property will be updated.JerseyWebTargetqueryParam(String name, Object... values)Create a newWebTargetinstance by configuring a query parameter on the URI of the current target instance.JerseyWebTargetregister(Class<?> providerClass)Register a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyWebTargetregister(Class<?> providerClass, int bindingPriority)Register a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyWebTargetregister(Class<?> providerClass, Class<?>... contracts)Register a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyWebTargetregister(Class<?> providerClass, Map<Class<?>,Integer> contracts)Register a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyWebTargetregister(Object provider)Register an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyWebTargetregister(Object provider, int bindingPriority)Register an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyWebTargetregister(Object provider, Class<?>... contracts)Register an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyWebTargetregister(Object provider, Map<Class<?>,Integer> contracts)Register an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.JerseyInvocation.Builderrequest()Start building a request to the targeted web resource.JerseyInvocation.Builderrequest(MediaType... acceptedResponseTypes)Start building a request to the targeted web resource and define the accepted response media types.JerseyInvocation.Builderrequest(String... acceptedResponseTypes)Start building a request to the targeted web resource and define the accepted response media types.JerseyWebTargetresolveTemplate(String name, Object value)Create a newWebTargetinstance by resolving a URI template with a givennamein the URI of the current target instance using a supplied value.JerseyWebTargetresolveTemplate(String name, Object value, boolean encodeSlashInPath)Create a newWebTargetinstance by resolving a URI template with a givennamein the URI of the current target instance using a supplied value.JerseyWebTargetresolveTemplateFromEncoded(String name, Object value)Create a newWebTargetinstance by resolving a URI template with a givennamein the URI of the current target instance using a supplied encoded value.JerseyWebTargetresolveTemplates(Map<String,Object> templateValues)Create a newWebTargetinstance by resolving one or more URI templates in the URI of the current target instance using supplied name-value pairs.JerseyWebTargetresolveTemplates(Map<String,Object> templateValues, boolean encodeSlashInPath)Create a newWebTargetinstance by resolving one or more URI templates in the URI of the current target instance using supplied name-value pairs.JerseyWebTargetresolveTemplatesFromEncoded(Map<String,Object> templateValues)Create a newWebTargetinstance by resolving one or more URI templates in the URI of the current target instance using supplied name-encoded value pairs.StringtoString()
-
-
-
Constructor Detail
-
JerseyWebTarget
protected JerseyWebTarget(UriBuilder uriBuilder, JerseyWebTarget that)
Create new web target instance.- Parameters:
uriBuilder- builder for the target URI.that- original target to copy the internal data from.
-
JerseyWebTarget
protected JerseyWebTarget(UriBuilder uriBuilder, ClientConfig clientConfig)
Create new web target instance.- Parameters:
uriBuilder- builder for the target URI.clientConfig- target configuration.
-
-
Method Detail
-
getUri
public URI getUri()
Description copied from interface:WebTargetGet the URI identifying the resource.
-
getUriBuilder
public UriBuilder getUriBuilder()
Description copied from interface:WebTargetGet the URI builder initialized with theURIof the current resource target. The returned URI builder is detached from the target, i.e. any updates in the URI builder MUST NOT have any effects on the URI of the originating target.- Specified by:
getUriBuilderin interfaceWebTarget- Returns:
- the initialized URI builder.
-
path
public JerseyWebTarget path(String path) throws NullPointerException
Description copied from interface:WebTargetCreate a newWebTargetinstance by appending path to the URI of the current target instance.When constructing the final path, a '/' separator will be inserted between the existing path and the supplied path if necessary. Existing '/' characters are preserved thus a single value can represent multiple URI path segments.
A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.
- Specified by:
pathin interfaceWebTarget- Parameters:
path- the path, may contain URI template parameters.- Returns:
- a new target instance.
- Throws:
NullPointerException- if path isnull.
-
matrixParam
public JerseyWebTarget matrixParam(String name, Object... values) throws NullPointerException
Description copied from interface:WebTargetCreate a newWebTargetinstance by appending a matrix parameter to the existing set of matrix parameters of the current final segment of the URI of the current target instance. If multiple values are supplied the parameter will be added once per value. In case a singlenullvalue is entered, all parameters with that name in the current final path segment are removed (if present) from the collection of last segment matrix parameters inherited from the current target.Note that the matrix parameters are tied to a particular path segment; appending a value to an existing matrix parameter name will not affect the position of the matrix parameter in the URI path.
A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.
- Specified by:
matrixParamin interfaceWebTarget- Parameters:
name- the matrix parameter name, may contain URI template parameters.values- the matrix parameter value(s), each object will be converted to aStringusing itstoString()method. Stringified values may contain URI template parameters.- Returns:
- a new target instance.
- Throws:
NullPointerException- if the parameter name isnullor if there are multiple values present and any of those values isnull.- See Also:
- Matrix URIs
-
queryParam
public JerseyWebTarget queryParam(String name, Object... values) throws NullPointerException
Description copied from interface:WebTargetCreate a newWebTargetinstance by configuring a query parameter on the URI of the current target instance. If multiple values are supplied the parameter will be added once per value. In case a singlenullvalue is entered, all parameters with that name are removed (if present) from the collection of query parameters inherited from the current target.A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.
- Specified by:
queryParamin interfaceWebTarget- Parameters:
name- the query parameter name, may contain URI template parametersvalues- the query parameter value(s), each object will be converted to aStringusing itstoString()method. Stringified values may contain URI template parameters.- Returns:
- a new target instance.
- Throws:
NullPointerException- if the parameter name isnullor if there are multiple values present and any of those values isnull.
-
request
public JerseyInvocation.Builder request()
Description copied from interface:WebTargetStart building a request to the targeted web resource.
-
request
public JerseyInvocation.Builder request(String... acceptedResponseTypes)
Description copied from interface:WebTargetStart building a request to the targeted web resource and define the accepted response media types.Invoking this method is identical to:
webTarget.request().accept(types);
-
request
public JerseyInvocation.Builder request(MediaType... acceptedResponseTypes)
Description copied from interface:WebTargetStart building a request to the targeted web resource and define the accepted response media types.Invoking this method is identical to:
webTarget.request().accept(types);
-
resolveTemplate
public JerseyWebTarget resolveTemplate(String name, Object value) throws NullPointerException
Description copied from interface:WebTargetCreate a newWebTargetinstance by resolving a URI template with a givennamein the URI of the current target instance using a supplied value. In case anulltemplate name or value is entered aNullPointerExceptionis thrown.A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.
- Specified by:
resolveTemplatein interfaceWebTarget- Parameters:
name- name of the URI template.value- value to be used to resolve the template.- Returns:
- a new target instance.
- Throws:
NullPointerException- if the resolved template name or value isnull.
-
resolveTemplate
public JerseyWebTarget resolveTemplate(String name, Object value, boolean encodeSlashInPath) throws NullPointerException
Description copied from interface:WebTargetCreate a newWebTargetinstance by resolving a URI template with a givennamein the URI of the current target instance using a supplied value. In case anulltemplate name or value is entered aNullPointerExceptionis thrown.A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.
- Specified by:
resolveTemplatein interfaceWebTarget- Parameters:
name- name of the URI template.value- value to be used to resolve the template.encodeSlashInPath- iftrue, the slash ('/') characters in template values will be encoded if the template is placed in the URI path component, otherwise the slash characters will not be encoded in path templates.- Returns:
- a new target instance.
- Throws:
NullPointerException- if the resolved template name or value isnull.
-
resolveTemplateFromEncoded
public JerseyWebTarget resolveTemplateFromEncoded(String name, Object value) throws NullPointerException
Description copied from interface:WebTargetCreate a newWebTargetinstance by resolving a URI template with a givennamein the URI of the current target instance using a supplied encoded value. A template with a matching name will be replaced by the supplied value. Value is converted toStringusing itstoString()method and is then encoded to match the rules of the URI component to which they pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded. In case anulltemplate name or value is entered aNullPointerExceptionis thrown.A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.
- Specified by:
resolveTemplateFromEncodedin interfaceWebTarget- Parameters:
name- name of the URI template.value- encoded value to be used to resolve the template.- Returns:
- a new target instance.
- Throws:
NullPointerException- if the resolved template name or value isnull.
-
resolveTemplates
public JerseyWebTarget resolveTemplates(Map<String,Object> templateValues) throws NullPointerException
Description copied from interface:WebTargetCreate a newWebTargetinstance by resolving one or more URI templates in the URI of the current target instance using supplied name-value pairs. A call to the method with an empty parameter map is ignored, i.e. sameWebTargetinstance is returned.A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.
- Specified by:
resolveTemplatesin interfaceWebTarget- Parameters:
templateValues- a map of URI template names and their values.- Returns:
- a new target instance or the same target instance in case the input name-value map is empty.
- Throws:
NullPointerException- if the name-value map or any of the names or values in the map isnull.
-
resolveTemplates
public JerseyWebTarget resolveTemplates(Map<String,Object> templateValues, boolean encodeSlashInPath) throws NullPointerException
Description copied from interface:WebTargetCreate a newWebTargetinstance by resolving one or more URI templates in the URI of the current target instance using supplied name-value pairs. A call to the method with an empty parameter map is ignored, i.e. sameWebTargetinstance is returned.A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.
- Specified by:
resolveTemplatesin interfaceWebTarget- Parameters:
templateValues- a map of URI template names and their values.encodeSlashInPath- iftrue, the slash ('/') characters in template values will be encoded if the template is placed in the URI path component, otherwise the slash characters will not be encoded in path templates.- Returns:
- a new target instance or the same target instance in case the input name-value map is empty.
- Throws:
NullPointerException- if the name-value map or any of the names or values in the map isnull.
-
resolveTemplatesFromEncoded
public JerseyWebTarget resolveTemplatesFromEncoded(Map<String,Object> templateValues) throws NullPointerException
Description copied from interface:WebTargetCreate a newWebTargetinstance by resolving one or more URI templates in the URI of the current target instance using supplied name-encoded value pairs. All templates with their name matching one of the keys in the supplied map will be replaced by the value in the supplied map. Values are converted toStringusing theirtoString()method and are then encoded to match the rules of the URI component to which they pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded. A call to the method with an empty parameter map is ignored, i.e. sameWebTargetinstance is returned.A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.
- Specified by:
resolveTemplatesFromEncodedin interfaceWebTarget- Parameters:
templateValues- a map of URI template names and their encoded values.- Returns:
- a new target instance or the same target instance in case the input name-value map is empty.
- Throws:
NullPointerException- if the name-value map or any of the names or encoded values in the map isnull.
-
register
public JerseyWebTarget register(Class<?> providerClass)
Description copied from interface:ConfigurableRegister a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context. Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type, for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS implementation and a warning SHOULD be raised to inform the user about the rejected registration. The registered JAX-RS component class is registered as a contract provider of all the recognized JAX-RS or implementation-specific extension contracts including meta-provider contracts, such asFeatureorDynamicFeature.As opposed to component instances registered via
Configurable.register(Object)method, the lifecycle of components registered using this class-basedregister(...)method is fully managed by the JAX-RS implementation or any underlying IoC container supported by the implementation.- Specified by:
registerin interfaceConfigurable<WebTarget>- Parameters:
providerClass- JAX-RS component class to be configured in the scope of this configurable context.- Returns:
- the updated configurable context.
-
register
public JerseyWebTarget register(Object provider)
Description copied from interface:ConfigurableRegister an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context. Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type, for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS implementation and a warning SHOULD be raised to inform the user about the rejected registration. The registered JAX-RS component is registered as a contract provider of all the recognized JAX-RS or implementation-specific extension contracts including meta-provider contracts, such asFeatureorDynamicFeature.As opposed to components registered via
Configurable.register(Class)method, the lifecycle of providers registered using this instance-basedregister(...)is not managed by JAX-RS runtime. The same registered component instance is used during the whole lifespan of the configurable context. Fields and properties of all registered JAX-RS component instances are injected with their declared dependencies (seeContext) by the JAX-RS runtime prior to use.- Specified by:
registerin interfaceConfigurable<WebTarget>- Parameters:
provider- JAX-RS component instance to be configured in the scope of this configurable context.- Returns:
- the updated configurable context.
-
register
public JerseyWebTarget register(Class<?> providerClass, int bindingPriority)
Description copied from interface:ConfigurableRegister a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.This registration method provides the same functionality as
Configurable.register(Class)except that any priority specified on the registered JAX-RS component class viajakarta.annotation.Priorityannotation is overridden with the suppliedpriorityvalue.Note that in case the priority is not applicable to a particular provider contract implemented by the class of the registered component, the supplied
priorityvalue will be ignored for that contract.- Specified by:
registerin interfaceConfigurable<WebTarget>- Parameters:
providerClass- JAX-RS component class to be configured in the scope of this configurable context.bindingPriority- the overriding priority for the registered component and all the provider contracts the component implements.- Returns:
- the updated configurable context.
-
register
public JerseyWebTarget register(Class<?> providerClass, Class<?>... contracts)
Description copied from interface:ConfigurableRegister a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.This registration method provides the same functionality as
Configurable.register(Class)except the JAX-RS component class is only registered as a provider of the listed extension provider or meta-providercontracts. All explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered component. Contracts that are notassignable fromthe registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).- Specified by:
registerin interfaceConfigurable<WebTarget>- Parameters:
providerClass- JAX-RS component class to be configured in the scope of this configurable context.contracts- the specific extension provider or meta-provider contracts implemented by the component for which the component should be registered. Implementations MUST ignore attempts to register a component class for an empty ornullcollection of contracts via this method and SHOULD raise a warning about such event.- Returns:
- the updated configurable context.
-
register
public JerseyWebTarget register(Class<?> providerClass, Map<Class<?>,Integer> contracts)
Description copied from interface:ConfigurableRegister a class of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.This registration method provides same functionality as
Configurable.register(Class, Class[])except that any priority specified on the registered JAX-RS component class viajakarta.annotation.Priorityannotation is overridden for each extension provider contract type separately with an integer priority value specified as a value in the supplied map of [contract type, priority] pairs.Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the supplied priority value is ignored for such contract.
- Specified by:
registerin interfaceConfigurable<WebTarget>- Parameters:
providerClass- JAX-RS component class to be configured in the scope of this configurable context.contracts- map of the specific extension provider and meta-provider contracts and their associated priorities for which the JAX-RS component is registered. All contracts in the map must represent a class or an interface implemented or extended by the JAX-RS component. Contracts that are notassignable fromthe registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).- Returns:
- the updated configurable context.
-
register
public JerseyWebTarget register(Object provider, int bindingPriority)
Description copied from interface:ConfigurableRegister an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.This registration method provides the same functionality as
Configurable.register(Object)except that any priority specified on the registered JAX-RS component class viajakarta.annotation.Priorityannotation is overridden with the suppliedpriorityvalue.Note that in case the priority is not applicable to a particular provider contract implemented by the class of the registered component, the supplied
priorityvalue will be ignored for that contract.- Specified by:
registerin interfaceConfigurable<WebTarget>- Parameters:
provider- JAX-RS component instance to be configured in the scope of this configurable context.bindingPriority- the overriding priority for the registered component and all the provider contracts the component implements.- Returns:
- the updated configurable context.
-
register
public JerseyWebTarget register(Object provider, Class<?>... contracts)
Description copied from interface:ConfigurableRegister an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.This registration method provides the same functionality as
Configurable.register(Object)except the JAX-RS component class is only registered as a provider of the listed extension provider or meta-providercontracts. All explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered component. Contracts that are notassignable fromthe registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).- Specified by:
registerin interfaceConfigurable<WebTarget>- Parameters:
provider- JAX-RS component instance to be configured in the scope of this configurable context.contracts- the specific extension provider or meta-provider contracts implemented by the component for which the component should be registered. Implementations MUST ignore attempts to register a component class for an empty ornullcollection of contracts via this method and SHOULD raise a warning about such event.- Returns:
- the updated configurable context.
-
register
public JerseyWebTarget register(Object provider, Map<Class<?>,Integer> contracts)
Description copied from interface:ConfigurableRegister an instance of a custom JAX-RS component (such as an extension provider or afeaturemeta-provider) to be instantiated and used in the scope of this configurable context.This registration method provides same functionality as
Configurable.register(Object, Class[])except that any priority specified on the registered JAX-RS component class viajakarta.annotation.Priorityannotation is overridden for each extension provider contract type separately with an integer priority value specified as a value in the supplied map of [contract type, priority] pairs.Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the supplied priority value is ignored for such contract.
- Specified by:
registerin interfaceConfigurable<WebTarget>- Parameters:
provider- JAX-RS component instance to be configured in the scope of this configurable context.contracts- map of the specific extension provider and meta-provider contracts and their associated priorities for which the JAX-RS component is registered. All contracts in the map must represent a class or an interface implemented or extended by the JAX-RS component. Contracts that are notassignable fromthe registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).- Returns:
- the updated configurable context.
-
property
public JerseyWebTarget property(String name, Object value)
Description copied from interface:ConfigurableSet the new configuration property, if already set, the existing value of the property will be updated. Setting anullvalue into a property effectively removes the property from the property bag.- Specified by:
propertyin interfaceConfigurable<WebTarget>- Parameters:
name- property name.value- (new) property value.nullvalue removes the property with the given name.- Returns:
- the updated configurable instance.
-
getConfiguration
public ClientConfig getConfiguration()
Description copied from interface:ConfigurableGet a live view of an internal configuration state of this configurable instance. Any changes made using methods of thisConfigurableinstance will be reflected in the returnedConfigurationinstance.The returned
Configurationinstance and the collection data it provides are not thread-safe wrt. modification made using methods on the parent configurable object.- Specified by:
getConfigurationin interfaceConfigurable<WebTarget>- Specified by:
getConfigurationin interfaceInitializable<JerseyWebTarget>- Returns:
- configuration live view of the internal configuration state.
-
preInitialize
public JerseyWebTarget preInitialize()
Description copied from interface:InitializablePre-initializes the runtime and runtimeconfigurationof this component in order to improve performance during the first request.Once this method is called no other method implementing
Configurableshould be called on this pre initialized component, otherwise the initialized client runtime will be discarded and the configuration will change back to uninitialized.- Specified by:
preInitializein interfaceInitializable<JerseyWebTarget>- Returns:
- pre-initialized Jersey client component.
-
-