servlet jax example java thread-safety jersey jersey-client jersey-2.0

jax - post rest java



¿Es seguro el hilo de java Jersey 2.1 para clientes? (2)

La documentación para el jersey 2.0 dice :

Las instancias del cliente son recursos caros. Se recomienda que una instancia configurada se reutilice para la creación de recursos web. Se garantiza que la creación de recursos web, la creación de solicitudes y la recepción de respuestas son seguras para subprocesos. Por lo tanto, una instancia de Cliente y las instancias de WebResource se pueden compartir entre varios subprocesos

¿El cliente sigue siendo seguro para subprocesos en la versión 2.1? No puedo encontrar información sobre seguridad de subprocesos en documentos para 2.1.


Creo que, en base a las notas de la versión 2.1 , nada ha cambiado al respecto, pero no puedo encontrar la motivación para este cambio en la documentación.


Sí, el cliente de Jersey 2.1 es seguro para subprocesos y debería ser seguro incluso en la futura versión de Jersey. Puede crear muchos WebTarget desde una instancia de Cliente e invocar muchas solicitudes en estos WebTargets e incluso más solicitudes en una instancia de WebTarget al mismo tiempo.

La seguridad de subprocesos se puede romper si registra su proveedor personalizado seguro sin subprocesos en un Cliente o un WebTaget. Por ejemplo, un ClientRequestFilter que no es seguro para subprocesos y no puede manejar más solicitudes simultáneamente. Los proveedores incorporados en Jersey son seguros para subprocesos. Algunos proveedores de extensiones de Jersey no deben ser seguros para subprocesos y, en este caso, esto se especifica en el javadoc de un proveedor.