많은 응용 프로그램에서 xe : 대화 상자를 사용하기 전에 xe : 대화 상자를 호출하는 여러 단추가있는 새로운 XPage 워크 플로 양식에 문제가 있습니다.간헐적 NullPointerException (xe : 대화 상자 사용)
초반 및 초보자를 시뮬레이트하기 위해 서로 다른 로그인을 사용하여 여러 브라우저에서 테스트 했으므로 버튼이 올바르게 작동합니다. 그런 다음 잠시 후 이러한 동일한 버튼 중 하나를 클릭하면 "예기치 않은 런타임 오류 : 런타임에 예기치 않은 오류가 발생했습니다."java.lang.NullPointerException -이 시점부터 아무 사용자도 xe :를 사용하는 버튼을 클릭 할 수 없습니다. 대화 상자 - 동일한 오류가 발생합니다. 서버에서 엉망이되어서 HTTP 또는 전체 서버를 다시 시작해야 다시 작동하게됩니다.
워크 플로우가 진행되는 동안 앱은 링크가 포함 된 이메일을 XPage로 보냅니다. 앱이 이메일의 링크로 열리 며 (사용자가 로그인 한 후) 문제가 자주 발생하는 것처럼 보입니다.
그래서 일부 개체가 올바르게 설정되지 않았습니다. 어떤 객체가 설정되어 있지 않은지 어떻게 확인할 수 있습니까?
다음은 대화 상자가 렌더링되지 않는 일부 조건에서 다음 패널 내부에 앉아 궁금 추적
11/21/14 8:28 AM: Exception Thrown
Context Path: /aaa.nsf
Page Name: /test.xsp
javax.faces.FacesException: java.lang.NullPointerException
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:865)
at com.ibm.xsp.extlib.component.dynamiccontent.UIDynamicControl.invokeOnComponent(UIDynamicControl.java:254)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
at com.ibm.xsp.extlib.component.dialog.UIDialog.invokeOnComponent(UIDialog.java:543)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
at com.ibm.xsp.component.UIDataPanelBase.invokeOnComponent(UIDataPanelBase.java:416)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
at com.ibm.xsp.component.UIDataPanelBase.invokeOnComponent(UIDataPanelBase.java:416)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
at com.ibm.xsp.component.UIDataPanelBase.invokeOnComponent(UIDataPanelBase.java:416)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
at com.ibm.xsp.component.UIDataPanelBase.invokeOnComponent(UIDataPanelBase.java:416)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
at com.ibm.xsp.component.UIDataPanelBase.invokeOnComponent(UIDataPanelBase.java:416)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
at com.ibm.xsp.component.UIDataPanelBase.invokeOnComponent(UIDataPanelBase.java:416)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:878)
at com.ibm.xsp.component.UIViewRootEx.invokeOnComponent(UIViewRootEx.java:1552)
at com.ibm.xsp.component.UIViewRootEx._invokePartialRefresh(UIViewRootEx.java:1323)
at com.ibm.xsp.component.UIViewRootEx2._invokePartialRefresh(UIViewRootEx2.java:132)
at com.ibm.xsp.component.UIViewRootEx._renderView(UIViewRootEx.java:1309)
at com.ibm.xsp.component.UIViewRootEx.renderView(UIViewRootEx.java:1255)
at com.ibm.xsp.application.ViewHandlerExImpl.doRender(ViewHandlerExImpl.java:651)
at com.ibm.xsp.application.ViewHandlerExImpl._renderView(ViewHandlerExImpl.java:321)
at com.ibm.xsp.application.ViewHandlerExImpl.renderView(ViewHandlerExImpl.java:336)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:103)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:120)
at com.ibm.xsp.controller.FacesControllerImpl.render(FacesControllerImpl.java:270)
at com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:224)
at com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:157)
at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160)
at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138)
at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)
at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576)
at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1335)
at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:853)
at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796)
at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565)
at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1319)
at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662)
at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482)
at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:357)
at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:313)
at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)
Caused by: java.lang.NullPointerException
at com.ibm.xsp.extlib.component.dynamiccontent.AbstractDynamicContent.createContent(AbstractDynamicContent.java:134)
at com.ibm.xsp.extlib.component.dialog.UIDialog$PopupContent.encodeBegin(UIDialog.java:224)
at com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:842)
at com.ibm.xsp.component.UIViewRootEx$1.invokeContextCallback(UIViewRootEx.java:1326)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:862)
... 46 more
오류로 참조 된 코드를 살펴볼 가치가 있습니다. AbstractDynamicContent (134 행) - https://github.com/OpenNTF/XPagesExtensionLibrary/blob/a915a03b169253ecfa1228ac860ab39e26a13881/extlib/lwp/product/runtime/eclipse/plugins/com.ibm.xsp.extlib.controls/src/com/ibm/ xsp/extlib/component/dynamiccontent/AbstractDynamicContent.java, UIDialog (224 행) - https://github.com/OpenNTF/XPagesExtensionLibrary/blob/a915a03b169253ecfa1228ac860ab39e26a13881/extlib/lwp/product/runtime/eclipse/plugins/com.ibm .xsp.extlib.controls/src/com/ibm/xsp/extlib/component/dialog/UIDialog.java –
브라이언 - 정보 주셔서 감사합니다. 이 문제를 해결하는 방법은 dig보다 선호하지만 어쨌든 AbstractDynamicContent 선 134는 ViewStateBean.get()입니다. initFromState(); UIDialog 라인 224는 createContent (ctx)입니다. 뷰 상태 이외에 무엇을 만들지 잘 모르겠다. –
일반적으로 나는 그것을 약간 파헤쳐 보았지만, 나는 그 순간에 시간이 없다고 두려워한다. 다른 어떤 종류의 영혼이 급습 할 수 있습니다.하지만 최소한 나는 소스 코드가 공개되어 있고 Github에서 쉽게 접근 할 수 있다는 것을 알고 싶었다. (단지 이번주의 Git에 올라 갔다.) –