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