我想知道通过SOAP
(CXF / JAXB)发送的JAX-WS
请求的拦截器是否可以保证在调用发生的同一个线程中运行?
我问的原因是因为我想使用一些请求ID参数作为密钥将原始请求和响应(XML转储)记录到数据库。我不知道如何将此ID传递给拦截器,除了在JAXB
调用之前将其设置为ThreadLocal变量并在拦截器中检索它。还有其他原因我没看到是什么让这个策略成为一个坏主意?
答案 0 :(得分:0)
您可以将ServletContext注入您的服务/拦截器类
@Context
private ServletContext context;
从/到上下文获取/设置属性
context.getAttribute
context.setAttribute
通过这种方式,您可以在服务/拦截器之间传输对象
你也可以使用方法
Message#getContextualProperty
Message#setContextualProperty
在你的拦截器中设置/获取上下文的属性