0

我正在尝试在 webservice 方法中调用托管 bean。它抛出一个NullPointerException因为FacesContext.getCurrentInstance()返回null

这是如何引起的,我该如何解决?

4

1 回答 1

1

JSF 是一个基于组件的 MVC 框架,由FacesServlet. 该 servlet 也是负责创建FacesContext. 如果您的 HTTP 请求没有FacesServlet像您使用由完全不同的 servlet 控制的完全独立且独立的 Web 服务框架时那样提供服务,则FacesContext根本不可用。然后FacesContext#getCurrentInstance()将返回null

尝试在 Web 服务方法中调用 JSF 托管 bean 是没有意义的。这就像在工作中使用了错误的工具一样。只需将您需要执行的代码重构为一个新的独立类,您最终只需在 JSF 托管 bean 和 webservice 类中导入/注入即可。

于 2012-04-16T15:08:57.843 回答