【问题标题】:JAX-WS - get SOAP headers in web methodJAX-WS - 在 Web 方法中获取 SOAP 标头
【发布时间】:2011-01-17 13:12:07
【问题描述】:

有没有办法使用纯 JAX-WS 获取 Web 方法中所有 SOAP 标头的列表?我知道这可以通过使用 Metro 特定类 (HeaderList hl = messageContext.get(JAXWSProperties.INBOUND_HEADER_LIST_PROPERTY)) 来完成。但是我不确定我是否可以依赖在运行时实现该实现,所以我想坚持使用 JAX-WS。

我也知道@WebParam注解的header属性。我宁愿不必在那里指定标头参数。原因是我的 Web 服务有一些对所有 Web 方法都通用的 ID,这会污染接口。此外,如果出现另一个 ID 或再次删除一个 ID(规范尚未最终确定),我必须修改每一个网络方法。也没有理由再使用标题了 - 它可能是一个普通的方法参数。

我知道的第三种方法是通过@HandlerChain 使用处理程序,但是我无法将标头与已执行的 Web 方法连接起来。我提到的 ID 对于进一步处理很重要——它们不仅仅是可以独立于方法工作的访问控制。

【问题讨论】:

  • 我不想对 j2ee 标签过于迂腐,但我目前使用的是纯 J2SE。

标签: java web-services soap jakarta-ee jax-ws


【解决方案1】:

如果您实现了请求处理程序,您可以将标头存储在线程本地的静态变量中,并为您的服务方法实现实现某种访问机制。

【讨论】:

  • 在那种情况下从未考虑过 ThreadLocal。在处理诸如 Web 服务之类的高级事物时使用这种低级概念很奇怪,但它似乎可以完成工作。
猜你喜欢
  • 2011-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多