我需要在运行时根据soap 标头的内容将EntityManagers 动态分配给我的bean。我的计划是使用 SOAPHandler 从标头中提取信息,然后将其存储在请求范围内。我有一个方法@Producer,我设想访问这个请求范围,检查存储的变量,并返回适当的实体管理器。
(EntityManager 指的是具有相同结构但数据不同的不同数据库)。
我的问题是:如何访问请求上下文以存储名称(在 SOAPHandler 端),然后再次检索请求上下文以检索名称?
任何帮助表示赞赏。
我需要在运行时根据soap 标头的内容将EntityManagers 动态分配给我的bean。我的计划是使用 SOAPHandler 从标头中提取信息,然后将其存储在请求范围内。我有一个方法@Producer,我设想访问这个请求范围,检查存储的变量,并返回适当的实体管理器。
(EntityManager 指的是具有相同结构但数据不同的不同数据库)。
我的问题是:如何访问请求上下文以存储名称(在 SOAPHandler 端),然后再次检索请求上下文以检索名称?
任何帮助表示赞赏。
回答我自己的问题:
粘贴在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");