本帖最后由 is_zhoufeng 于 2013-09-09 12:47:50 编辑

解决方案 »

  1.   

    说实话没用过。
    不过我猜有可能是线程池的原因。你模拟一些并发请求在看看ThreadID是否还一样。
      

  2.   

    线程池的问题。用完了ThreadLocal 的变量, 手动清一下好了
      

  3.   


    ??  用完了ThreadLocal 的变量 什么意思   怎么清理啊?
      

  4.   


    明白你的意思了。  我给系统上所有的Resource都加了一个Filter , 在访问Resource之前该Filter会获取Request里面的信息,然后放到系统的ThreadLocal变量里面, 在Resource中就可以方便的使用请求信息了, 但是使用完了之后没有将它们清除 , 线程又被放入线程池了 ,再次有请求进来的时候 从线程池取出的线程里面会有上一个请求的历史数据 。 现在我将Filter改了一下 , 第一步就是清楚ThreadLocal里面的数据, 然后从request取数据,再赋值给ThreadLocal 就可以了