1

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

(EntityManager 指的是具有相同结构但数据不同的不同数据库)。

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

任何帮助表示赞赏。

4

1 回答 1

2

回答我自己的问题:

粘贴在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");

于 2012-11-23T14:32:31.263 回答