Безопасность потока фильтра клиента Джерси - PullRequest
1 голос
/ 07 июля 2011

Я использую одноэлементный экземпляр клиента jersey, настроенного через Spring, с несколькими потоками, каждый из которых устанавливает разные фильтры аутентификации на клиенте. По документам

http://jersey.java.net/nonav/apidocs/1.3/jersey/com/sun/jersey/api/client/Client.html.

установка фильтров не гарантирует, что потокобезопасен, что означает, что поток A не гарантированно аутентифицируется как сам, когда другие потоки устанавливают фильтры одновременно

Есть ли способ обойти эту проблему, кроме создания нового клиента для каждого потока? Я хотел бы избежать этого, поскольку это дорогостоящая операция.

1 Ответ

2 голосов
/ 07 июля 2011

Я не верю, что вы сможете безопасно использовать один клиент с несколькими потоками таким образом. Я бы предложил создать пул клиентов, и каждый поток заимствовал бы клиента из пула, установить соответствующий фильтр аутентификации, а затем очистить фильтр перед возвратом клиента в пул.

Apache commons имеет компонент pool , который бы хорошо работал для этого.

...