【问题标题】:Liferay portlet won't be shownLiferay portlet 不会显示
【发布时间】:2015-06-15 23:29:11
【问题描述】:

我已经在 Liferayforum 上发布了我的问题,但没有任何答案。 https://www.liferay.com/de/community/forums/-/message_boards/message/55035046

我正在使用 JSF Primefaces 开发一些 Portlet。 但有时 Portlet 不会显示,只有空白空间。 这只是有时发生,没有任何可重现的原因。 对这个问题有什么想法吗?

关注日志:

14:41:41,416 ERROR [RuntimePageImpl-9][render_portlet_jsp:132] null
java.lang.NullPointerException
    at org.primefaces.component.chart.renderer.PieRenderer.encodeData(PieRenderer.java:34)
    at org.primefaces.component.chart.renderer.BasePlotRenderer.render(BasePlotRenderer.java:29)
    at org.primefaces.component.chart.ChartRenderer.encodeScript(ChartRenderer.java:98)
    at org.primefaces.component.chart.ChartRenderer.encodeEnd(ChartRenderer.java:67)
    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:881)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1786)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782)
    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:439)
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:124)
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:286)
    at com.liferay.faces.bridge.application.ViewHandlerCompatImpl.renderView(ViewHandlerCompatImpl.java:52)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    at com.liferay.faces.bridge.BridgePhaseRenderImpl.execute(BridgePhaseRenderImpl.java:227)
    at com.liferay.faces.bridge.BridgePhaseRenderImpl.execute(BridgePhaseRenderImpl.java:85)
    at com.liferay.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:112)
    at javax.portlet.faces.GenericFacesPortlet.doView(GenericFacesPortlet.java:255)
    at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328)

出于这些原因,是否有任何错误处理方法? 如果我的 Portlet 会抛出异常,我只是不想显示自定义的错误消息或其他内容。

谢谢

【问题讨论】:

    标签: jsf primefaces liferay portlet


    【解决方案1】:

    实际上你必须找到 NPE 的来源。如果您已经找到了 NPE 的来源,您可以包装一个 try/catch 并使用

    SessionErrors.add(actionRequest, "error-key");
    

    添加错误的方法。为了显示它,您可以将其添加到您的 jsp:

    <liferay-ui:error key="error-key" message="this-is-error-message-1" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多