【问题标题】:Jersey client filter thread safetyJersey 客户端过滤线程安全
【发布时间】:2011-07-07 13:26:15
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java spring spring-mvc jersey http-authentication


    【解决方案1】:

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

    Apache commons 有一个 pool 组件可以很好地解决这个问题。

    【讨论】:

    猜你喜欢
    • 2013-08-07
    • 2018-05-02
    • 2012-08-14
    • 2019-03-20
    • 1970-01-01
    • 2012-03-31
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多