java - Jersey 客户端过滤器线程安全

标签 java spring spring-mvc jersey http-authentication

我正在使用通过 spring 配置的 jersey 客户端的单例实例,其中有多个线程,每个线程在客户端上设置不同的身份验证过滤器。根据文档

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

设置过滤器不保证线程安全,这意味着当其他线程同时设置过滤器时,不能保证线程 A 能够通过自身身份验证。

除了为每个线程创建一个新客户端之外,是否有解决此问题的方法?我想避免这种情况,因为这是一项昂贵的操作。

最佳答案

我不相信您能够以这种方式安全地使用具有多个线程的单个客户端。我建议创建一个客户端池,并让每个线程从池中借用一个客户端,设置适当的身份验证过滤器,然后在将客户端返回到池之前清除过滤器。

Apache commons 有一个 pool非常适合此目的的组件。

关于java - Jersey 客户端过滤器线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6611323/

相关文章:

model-view-controller - 把这样的业务逻辑放在哪里?服务与 DAO?

java - @ControllerAdvice,如何获取调用该方法的类?

java - ORMLite 异步操作

java - 创建 java.util.map.Entry 实例以帮助单元测试

java - 用对象填充数组

java - 如何转换为指定的类类型?

Spring Data Neo4j 4 - @Fetch 更改为 findAll(int depth) 始终返回 null

java - 接口(interface) com.sun.xml.ws.developer.WSBindingProvider 在类加载器中不可见

java - 当值保存在 Play Controller 中时,如何读取服务层中的 session 值

java - Gradle gretty jetty 无法在调试中工作