我正在开发一个 Web 服务,该服务将由我编写的客户端调用。在 Web 服务中,我需要使用应用程序范围的对象,以减轻系统上应用程序的负载。我已经实现了我的应用程序范围的对象,如下所示这个问题.
我可以在 jsf 页面中使用我的对象,没有任何问题,如下所示。
MyObject mo = (MyObject) FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get("MyObjectsName");
但当在 Web 服务请求中使用它时,FacesContext.getCurrentInstance() 返回 null。有没有办法在 Web 服务中使用 FacesContext?
它为 null,因为 Web 服务不是通过 Faces Servlet 实现的。事情应该如此,因为 Web 服务与 JSF 无关。
如果您使用 jax-ws 实现,您可以使用:
@Resource
WebServiceContext context;
这将注入WebServiceContext
,通过它您可以:
ServletContext servletContext = (ServletContext)
context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
并且拥有ServletContext
,您可以访问应用程序范围的对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)