我需要在运行时根据soap标头的内容动态地将EntityManagers分配给我的bean。我的计划是使用SOAPHandler从头中提取信息,然后将其存储在请求范围中。我有一个方法@Producer,我设想访问这个请求范围,检查存储的变量,并返回适当的实体管理器。
(EntityManagers引用具有相同结构但不同数据的不同DB)。
我的问题是这个:如何访问请求上下文以存储名称(在SOAPHandler端),然后再次检索请求上下文以检索名称?
任何帮助表示感谢。
答案 0 :(得分:2)
回答我自己的问题:
将其粘贴在SOAPMessageContext中,如下所示:
context.put(“VARIABLE_KEY”,whateverIWantObject);
context.setScope(“VARIABLE_KEY”,Scope.APPLICATION);
(Scope.APPLICATION很重要)。
然后,您可以在服务层中从Web服务上下文中获取消息上下文,您可以将其注入;然后消息上下文将包含您的对象:
@Resource WebServiceContext webContext;
ObjectType theObject = (ObjectType)webContext.getMessageContext()。get(“VARIABLE_KEY”);