【问题标题】:Storing in request scope - from SOAPHandler through to @Producer存储在请求范围内 - 从 SOAPHandler 到 @Producer
【发布时间】:2012-10-30 14:52:50
【问题描述】:

我需要在运行时根据soap 标头的内容将EntityManagers 动态分配给我的bean。我的计划是使用 SOAPHandler 从标头中提取信息,然后将其存储在请求范围内。我有一个方法@Producer,我设想访问这个请求范围,检查存储的变量,并返回适当的实体管理器。

(EntityManagers指的是不同的DB,结构相同,但数据不同)。

我的问题是这样的:如何访问请求上下文以存储名称(在 SOAPHandler 端),然后再次检索请求上下文以检索名称?

任何帮助表示赞赏。

【问题讨论】:

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


    【解决方案1】:

    回答我自己的问题:

    粘贴在SOAPMessageContext中,如下:

    context.put("VARIABLE_KEY", 不管IWantObject );

    context.setScope("VARIABLE_KEY", Scope.APPLICATION);

    (Scope.APPLICATION 很重要)。

    在服务层中,您可以从 Web 服务上下文中获取消息上下文,您可以将其注入;然后消息上下文将包含您的对象:

    @Resource WebServiceContext webContext;

    ObjectType theObject = (ObjectType) webContext.getMessageContext().get("VARIABLE_KEY");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 2019-12-18
      • 2017-06-08
      • 1970-01-01
      相关资源
      最近更新 更多