Class JerseyResource
- Direct Known Subclasses:
AdminAPIBase,ClusterFileStore,ConfigSetAPIBase,CoreAdminAPIBase,GetPublicKey,GetSchema,GetSchemaField,GetSegmentData,ListConfigSets,NodeLogging,ReplicationAPIBase,SnapshotBackupAPI,UpdateSchema
"Resources" in Jersey are classes that define one or more API endpoints. As such they're
analogous to the v1 SolrRequestHandler or the v2 Api.
-
Field Summary
FieldsModifier and TypeFieldDescriptionjakarta.ws.rs.container.ContainerRequestContext -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidensureRequiredParameterProvided(String parameterName, Object parameterValue) protected voidensureRequiredRequestBodyProvided(Object requestBody) protected <T extends SolrJerseyResponse>
TinstantiateJerseyResponse(Class<T> clazz) Create an instance of theSolrJerseyResponsesubclass; registering it with the Jersey request-context upon creation.protected <T extends SolrJerseyResponse>
TinstantiateJerseyResponse(Supplier<T> instantiator) Create an instance of theSolrJerseyResponsesubclass; registering it with the Jersey request-context upon creation.
-
Field Details
-
containerRequestContext
@Context public jakarta.ws.rs.container.ContainerRequestContext containerRequestContext
-
-
Constructor Details
-
JerseyResource
public JerseyResource()
-
-
Method Details
-
instantiateJerseyResponse
Create an instance of theSolrJerseyResponsesubclass; registering it with the Jersey request-context upon creation.This utility method primarily exists to allow Jersey resources to return error responses that match those returned by Solr's v1 APIs.
When a severe-enough exception halts a v1 request, Solr generates a summary of the error and attaches it to the
SolrQueryResponsegiven to the request handler. This SolrQueryResponse may already hold some portion of the normal "success" response for that API.The JAX-RS framework isn't well suited to mimicking responses of this sort, as the "response" from a Jersey resource is its return value (instead of a mutable method parameter that gets modified). This utility works around this limitation by attaching the eventual return value of a JerseyResource to the context associated with the Jersey request, as soon as its created. This allows partially-constructed responses to be accessed later in the case of an exception.
In order to instantiate arbitrary SolrJerseyResponse subclasses, this utility uses reflection to find and invoke the first (no-arg) constructor for the specified type. SolrJerseyResponse subclasses without a no-arg constructor can be instantiated and registered using
instantiateJerseyResponse(Supplier)- Parameters:
clazz- the SolrJerseyResponse class to instantiate and register- See Also:
-
instantiateJerseyResponse
Create an instance of theSolrJerseyResponsesubclass; registering it with the Jersey request-context upon creation.This utility method primarily exists to allow Jersey resources to return responses, especially error responses, that match some of the particulars of Solr's traditional/v1 APIs. See the companion method
instantiateJerseyResponse(Class)for more details.- Parameters:
instantiator- a lambda to create the desired SolrJerseyResponse- See Also:
-
ensureRequiredParameterProvided
-
ensureRequiredRequestBodyProvided
-