我正在尝试在 webservice 方法中调用托管 bean。它抛出一个NullPointerException
因为FacesContext.getCurrentInstance()
返回null
。
这是如何引起的,我该如何解决?
我正在尝试在 webservice 方法中调用托管 bean。它抛出一个NullPointerException
因为FacesContext.getCurrentInstance()
返回null
。
这是如何引起的,我该如何解决?
JSF 是一个基于组件的 MVC 框架,由FacesServlet
. 该 servlet 也是负责创建FacesContext
. 如果您的 HTTP 请求没有FacesServlet
像您使用由完全不同的 servlet 控制的完全独立且独立的 Web 服务框架时那样提供服务,则FacesContext
根本不可用。然后FacesContext#getCurrentInstance()
将返回null
。
尝试在 Web 服务方法中调用 JSF 托管 bean 是没有意义的。这就像在工作中使用了错误的工具一样。只需将您需要执行的代码重构为一个新的独立类,您最终只需在 JSF 托管 bean 和 webservice 类中导入/注入即可。