如何修复ADF

时间:2019-05-21 20:05:29

标签: oracle-adf jdeveloper

有时,用户遇到错误: oracle.jbo.uicli.binding.JUCtrlHierBinding.bringNodeToRangeKeyPath(JUCtrlHierBinding.java:1513)上的java.lang.NullPointerException。 正如MrAdibou先生提到的,我设置了“ oracle.jbo”和“ oracle.adfinternal”为Finest,在评论类似错误时,我能够看到下面的详细错误。请注意,我无法重现该场景,并且用户随机遇到错误。

    [AdminServer] [ERROR] [] [oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter] [host: WebHyperV] [nwaddr: xxx.xxx.xx.xxx] [tid: [ACTIVE].ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: WD] [ecid: aa53c714-24a8-4304-a637-d8f3525c2c84-00001169,0] [APP: EmpApp] [partition-name: DOMAIN] [tenant-name: GLOBAL] [DSID: 0000MfQDj1r0ZrwN0EFg6F1SsltU00000k] [LOG_FILE: C:\Oracle\Middleware\Oracle_Home_12213\user_projects\domains\base_domain\servers\AdminServer\logs\AdminServer-diagnostic.log] ADF_FACES-60096:Server Exception during PPR, #3[[
    javax.el.ELException: /WEB-INF/com/rs/emp/fragments/EmployeeView.jsff @513,111 selectionListener="#{bindings.employeeList.collectionModel.makeCurrent}": java.lang.NullPointerException
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:111)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodExpression(UIXComponentBase.java:2032)
    at org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:278)
    at oracle.adf.view.rich.component.UIXTable.broadcast(UIXTable.java:100)
    at oracle.adf.view.rich.component.rich.data.RichTable.broadcast(RichTable.java:126)
    at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)
    at org.apache.myfaces.trinidad.component.WrapperEvent.broadcastWrappedEvent(WrapperEvent.java:82)
    at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:195)
    at org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:281)
    at oracle.adf.view.rich.component.UIXTable.broadcast(UIXTable.java:100)
    at oracle.adf.view.rich.component.rich.data.RichTable.broadcast(RichTable.java:122)
    at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)
    at org.apache.myfaces.trinidad.component.WrapperEvent.broadcastWrappedEvent(WrapperEvent.java:82)
    at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:176)
    at org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:281)
    at oracle.adf.view.rich.component.UIXTable.broadcast(UIXTable.java:100)
    at oracle.adf.view.rich.component.rich.data.RichTable.broadcast(RichTable.java:126)
    at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)
    at org.apache.myfaces.trinidad.component.WrapperEvent.broadcastWrappedEvent(WrapperEvent.java:82)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:168)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:510)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:171)
    at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)
    at org.apache.myfaces.trinidad.component.WrapperEvent.broadcastWrappedEvent(WrapperEvent.java:82)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:111)
    at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)
    at org.apache.myfaces.trinidad.component.WrapperEvent.broadcastWrappedEvent(WrapperEvent.java:82)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:168)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:510)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:171)
    at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:115)
    at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)
        at org.apache.myfaces.trinidad.component.WrapperEvent.broadcastWrappedEvent(WrapperEvent.java:82)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:168)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:510)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:171)
        at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)
        at org.apache.myfaces.trinidad.component.WrapperEvent.broadcastWrappedEvent(WrapperEvent.java:82)
        at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:111)
        at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)
        at org.apache.myfaces.trinidad.component.WrapperEvent.broadcastWrappedEvent(WrapperEvent.java:82)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:168)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:510)
        at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:171)
        at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:115)
        at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)
        at oracle.adf.view.rich.event.ProxyEvent.broadcastWrappedEvent(ProxyEvent.java:72)
        at oracle.adf.view.rich.component.fragment.UIXRegion._handleProxyEvent(UIXRegion.java:933)
        at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:117)
        at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)
        at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:1243)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executeInvokeApplication(LifecycleImpl.java:686)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:364)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:227)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:650)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:207)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:105)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:529)
        at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:529)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:354)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:232)
        at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:169)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at oracle.security.jps.ee.http.JpsAbsFilter$3.run(JpsAbsFilter.java:172)
        at java.security.AccessController.doPrivileged(Native Method)
        at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
        at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:650)
        at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:110)
        at oracle.security.jps.ee.http.JpsAbsFilter.doFilterInternal(JpsAbsFilter.java:273)
        at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:147)
        at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:94)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:248)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:32)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3701)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3667)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
        at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)
        at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
        at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
        at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2443)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2291)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2269)
        at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1703)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1663)
        at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:272)
        at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)
        at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)
        at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)
        at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
        at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:644)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:415)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:355)
    Caused by: java.lang.NullPointerException
        at oracle.jbo.uicli.binding.JUCtrlHierBinding.bringNodeToRangeKeyPath(JUCtrlHierBinding.java:1513)
        at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding.bringNodeToRangeKeyPath(FacesCtrlHierBinding.java:123)
        at oracle.adfinternal.view.faces.model.binding.RowDataManager.setRowKey(RowDataManager.java:152)
        at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$FacesModel.setRowKey(FacesCtrlHierBinding.java:932)
        at oracle.adfinternal.view.faces.model.binding.FacesBindingUtils.pushCurrencyToModel(FacesBindingUtils.java:25)
        at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$FacesModel.makeCurrent(FacesCtrlHierBinding.java:779)
        at sun.reflect.GeneratedMethodAccessor813.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.sun.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:181)
        at com.sun.el.parser.AstValue.invoke(AstValue.java:289)
        at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)
        at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
        at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
        at org.jboss.weld.util.el.ForwardingMethodExpression.invoke(ForwardingMethodExpression.java:40)
        at org.jboss.weld.el.WeldMethodExpression.invoke(WeldMethodExpression.java:50)
        at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
        ... 105 more

    ]]

表格代码:

<af:table value="#{bindings.employeeList.collectionModel}"
              var="row" editingMode="clickToEdit"
              rows="#{bindings.employeeList.rangeSize}"
              emptyText="#{bindings.employeeList.viewable ? 'No data to display.' : 'Access Denied.'}"
              rowBandingInterval="0"
              columnStretching="#{bindings.employeeList.estimatedRowCount==0 ? 'last' : 'multiple'}"
              selectedRowKeys="#{bindings.employeeList.collectionModel.selectedRow}"
              selectionListener="#{bindings.employeeList.collectionModel.makeCurrent}"
              rowSelection="single"
              rendered="#{viewScope.crud.crudMode ne 'empty'}"
              binding="#{viewScope.crud.tblPS}" varStatus="vs"
              id="t36" fetchSize="10"
              blockRowNavigationOnError="always"
              contentDelivery="immediate" scrollPolicy="page">
        <af:column width="6%" headerText="code"
                   id="c251">
            <af:outputText value="#{row.bindings.code.inputValue}"
                           id="it115"/>
        </af:column>
        <af:column width="21%"
                   headerText="name" id="c252">
            <af:outputText value="#{row.bindings.name.inputValue}"
                           styleClass="smallHeight" id="ac116"/>
        </af:column>
        <af:column width="6%" headerText="desc"
                   id="c253">
            <af:outputText value="#{row.bindings.desc.inputValue}"
                           id="socV79"/>
        </af:column>
        <af:column width="6%"
                   headerText="startdate"
                   id="c254">
            <af:inputDate value="#{row.bindings.startdate.inputValue}"
                          readOnly="true" id="id68">
                <af:convertDateTime pattern="dd/MM/yyyy"
                                    secondaryPattern="ddMMyyyy"/>
            </af:inputDate>
        </af:column>
        <af:column width="5%"
                   headerText="sal"
                   id="c255">
            <af:outputText value="#{row.bindings.sal.inputValue}"
                           id="soc85"/>
        </af:column>
        <af:column width="3%"
                   headerText="dept"
                   id="c256"
                   visible="#{(bindings.deptId.inputValue eq 'M' and bindings.listSize.inputValue == 0)}">
            <af:outputText value="#{row.bindings.dept.inputValue}"
                           id="soc86"/>
        </af:column>
        <af:column width="4%"
                   headerText="age"
                   id="c257"
                   >
            <af:outputText value="#{row.bindings.age.inputValue}"
                           id="soc87"/>
        </af:column>

        <af:column id="c278" width="1%"
                   >
            <af:link icon="/images/basic/dark/search.png"
                     id="shPsbd"
                     shortDesc="search"
                     actionListener="#{viewScope.crud.onsearchActionListener}"
                     />
        </af:column>

        <af:column sortProperty="#{bindings.employeeList.hints.exp.name}"
                   sortable="true" width="5%"
                   headerText="experienceYear" id="c260">
            <af:outputText value="#{row.bindings.exp.inputValue}"
                           id="it118"/>
        </af:column>
    </af:table>

致谢

0 个答案:

没有答案