【问题标题】:Deployment issue of Jsf webapp on websphere v9.0jsf webapp on websphere v9.0部署问题
【发布时间】:2019-10-04 22:08:21
【问题描述】:

我正在使用 RAD 9.6.1 编写一个项目,UI 是在 JSF 2.0 中开发的。当我尝试在 Websphere 9.0 上部署我的应用程序时,出现以下错误。我试着做一个谷歌,但无法得到任何解决方案,尝试了所有可能的建议。我试图解决这个问题的解决方案。我将应用程序部署为配置战争的耳朵。 它适用于 Tomcat 和 jboss 很好。

从组件中的以下行获取空指针异常

static {
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ValueExpression vex = facesContext.getApplication()
            .getExpressionFactory().createValueExpression(
                    facesContext.getELContext(), "#{GenericDAO}",
                    ICRUDDAO.class); //this line give null pointer exception at initialization
    dao = (ICRUDDAO) vex.getValue(facesContext.getELContext());
}

【问题讨论】:

  • 我没有使用 WebSphere,但我注意到它有指导 lin,look it 或许它可以解决您的问题
  • ClassLoader 加载您的类后,就会立即处理静态代码块。这不一定在 JSF-Servlet 请求处理期间发生。因此,您的 facesContext 变量不太可能与 null 不同。

标签: jsf-2


【解决方案1】:

我解决了添加 mojarra jsf 实现的共享库的问题,服务器仅支持 myfaces 这里是 [a link] https://www.ibm.com/developerworks/community/blogs/devTips/entry/Using_a_Custom_JSF_implementation_with_WebSphere_Liberty_Profile?lang=en

【讨论】:

  • 为什么使用内置的 myfaces 失败了? NPE 似乎在您的代码中,所以这是一个非常奇怪的解决方案...
  • jsf 项目的实现取决于 mojarra 而不是我的脸,所以它无法初始化这就是我得到 NPE 的原因。
  • 然后看看你是否真的需要 mojarra 调用,如果不需要则删除它们。非常非常少需要这个。很可能是偶然发生的
猜你喜欢
  • 2017-06-16
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
  • 2013-12-03
  • 2021-08-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-23
相关资源
最近更新 更多