java - 从 Web 服务访问 FacesContext

标签 java web-services jsf

我正在开发一个 Web 服务,它将由我编写的客户端调用。在 Web 服务中,我需要使用应用程序范围的对象来减轻系统上应用程序的负载。我已经实现了我的应用程序范围的对象,如 this question 所示。 .

我可以在 jsf 页面中毫无问题地使用我的对象,如下所示。

MyObject mo = (MyObject) FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get("MyObjectsName");

但是当涉及到在 Web 服务请求中使用它时,FacesContext.getCurrentInstance() 返回 null。有什么方法可以在 Web 服务中使用 FacesContext。

最佳答案

它为空,因为 Web 服务不是通过 Faces Servlet 提供的。这是应该的方式,因为 Web 服务与 JSF 无关。

如果您使用的是 jax-ws 实现,您可以使用:

@Resource
WebServiceContext context;

这将注入(inject) WebServiceContext,通过它您可以:

ServletContext servletContext = (ServletContext) 
     context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);

有了 ServletContext,您就可以访问应用程序范围的对象。

关于java - 从 Web 服务访问 FacesContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2684407/

相关文章:

java - Android 示例中的 tabhost 在模拟器中强制关闭

java - Android NDK 回调到 Java Activity

java - 获取通用类参数的类名

php - 如何在 Cakephp 的 RESTful api 的 url 中提供字符串?

html - 一个或多个资源的目标为 'head' ,但没有 'head

java - 在测试类中模拟私有(private)静态最终变量

xml - 应该如何使用非 XML 数据表示在 RESTful 服务中提供链接?

xml - Delphi XE2 中 'ADOM XML v4' 呈现的 WSDL XML

jsf - 如何在 h :dataTable alternate color? 中生成行

java - JSF 2 : page not rerendered on AJAX request (@all and explicit IDs)