Fixing UIShell : Components in welcome facet are not shown

Hi
Jdeveloper version is 12.2.1 running on windows 10 machine
I have created ADF fusion application with model and viewcontroller projects.

the unbounded task flow contains three pages : login ,homeUIShell ,and hrUIShell

homeUIShell and hrUIShell are baed on UIShell template.
"login" page  is not based on any template. it is a blank page contains only one button to navigate to homeUIShell page.

in the homeUIShell page , I add a calendar component in the welcome facet. this is the jsf code of the homeUIShell

if I run only the homeUIShell , the calendar component renders correctly .But when I run the login page first and press the login button that simply navigates to the homeUIShell , the homeUIShell is displayed but the calendar is now rendered

The refresh button on the top of the page does not execute any method or actions.It is used only for testing submitting the page.
When I press the "refresh" button on the top of the page , this error is raised
  1. value="#{viewScope.tabContext.tabs[0].binding.regionModel}": java.lang.NullPointerException  
  2. <oracle.dfw.impl.incident.DiagnosticsDataExtractorImpl> <DiagnosticsDataExtractorImpl> <createADRIncident> <incident 444 created with problem key "ADFC-00032 [ADFc]">   
  3. <oracle.adf.view> <RichExceptionHandler> <_logUnhandledException> <ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase RESTORE_VIEW 1>   
  4. javax.el.ELException: /file:C:/Users/tarek/AppData/Roaming/JDeveloper/system12.2.1.1.42.160607.2047/DefaultDomain/servers/DefaultServer/tmp/_WL_user/TestApp/95dkyr/war/WEB-INF/lib/oracle-page-templates-ext.jar!/oracle/ui/pattern/dynamicShell/dynamicTabShell.jspx @278,126 value="#{viewScope.tabContext.tabs[0].binding.regionModel}": java.lang.NullPointerException  
  5.     at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:114)  
  6.     at org.apache.myfaces.trinidad.component.UIXFacesBeanImpl.getBoundProperty(UIXFacesBeanImpl.java:203)  
  7.     at org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:69)  
  8.     at org.apache.myfaces.trinidad.component.UIXComponentBase.getProperty(UIXComponentBase.java:1928)  
  9.     at oracle.adf.view.rich.component.fragment.PartialUIXRegion.getValue(PartialUIXRegion.java:201)  
  10.     at oracle.adf.view.rich.component.fragment.UIXRegion.getRegionModel(UIXRegion.java:308)  
  11.     at oracle.adf.view.rich.component.fragment.UIXRegion.processEvent(UIXRegion.java:1155)  
  12.     at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl$EventDeliverer.visit(LifecycleImpl.java:1122)  
  13.     at oracle.adfinternal.view.faces.component.visit.VisitCallbackChain.visit(VisitCallbackChain.java:31)  
  14.     at com.sun.faces.component.visit.FullVisitContext.invokeVisitCallback(FullVisitContext.java:151)  
  15.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:604)  
  16.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:405)  
  17.     at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:504)  
  18.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:482)  
  19.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:774)  
  20.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:631)  
  21.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:405)  
  22.     at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)  
  23.     at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:504)  
  24.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:482)  
  25.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:774)  
  26.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:631)  
  27.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:405)  
  28.     at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:504)  
  29.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:482)  
  30.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:774)  
  31.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:631)  
  32.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:405)  
  33.     at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:504)  
  34.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:482)  
  35.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:774)  
  36.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:631)  
  37.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:405)  
  38.     at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:504)  
  39.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:482)  
  40.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:774)  
  41.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:631)  
  42.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:405)  
  43.     at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:504)  
  44.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:482)  
  45.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:774)  
  46.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:631)  
  47.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:405)  
  48.     at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:504)  
  49.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:482)  
  50.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:774)  
  51.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:631)  
  52.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:405)  
  53.     at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:504)  
  54.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:482)  
  55.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:774)  
  56.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:631)  
  57.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:405)  
  58.     at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:504)  
  59.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:482)  
  60.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:774)  
  61.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:631)  
  62.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:405)  
  63.     at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:504)  
  64.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:482)  
  65.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:774)  
  66.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:631)  
  67.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:405)  
  68.     at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:504)  
  69.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:482)  
  70.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:774)  
  71.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:631)  
  72.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:405)  
  73.     at org.apache.myfaces.trinidad.component.UIXComponent.visitAllChildren(UIXComponent.java:504)  
  74.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:482)  
  75.     at org.apache.myfaces.trinidad.component.UIXComponent.visitChildren(UIXComponent.java:774)  
  76.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:631)  
  77.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:405)  
  78.     at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)  
  79.     at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:560)  
  80.     at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executeRestoreViewAfterPhaseListenerLogic(LifecycleImpl.java:532)  
  81.     at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executeAfterPhaseLogic(LifecycleImpl.java:466)  
  82.     at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:381)  
  83.     at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:227)  
  84.     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:650)  
  85.     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)  
  86.     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)  
  87.     at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)  
  88.     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)  
  89.     at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)  
  90.     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)  
  91.     at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:207)  
  92.     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)  
  93.     at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:105)  
  94.     at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:529)  
  95.     at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)  
  96.     at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:529)  
  97.     at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:354)  
  98.     at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:232)  
  99.     at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)  
  100.     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)  
  101.     at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:169)  
  102.     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)  
  103.     at weblogic.servlet.utils.FastSwapFilter.doFilter(FastSwapFilter.java:64)  
  104.     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)  
  105.     at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:141)  
  106.     at java.security.AccessController.doPrivileged(Native Method)  
  107.     at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)  
  108.     at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:650)  
  109.     at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:124)  
  110.     at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:232)  
  111.     at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:94)  
  112.     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)  
  113.     at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:248)  
  114.     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)  
  115.     at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:32)  
  116.     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)  
  117.     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3683)  
  118.     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3649)  
  119.     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)  
  120.     at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)  
  121.     at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)  
  122.     at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)  
  123.     at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2433)  
  124.     at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2281)  
  125.     at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2259)  
  126.     at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1686)  
  127.     at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1646)  
  128.     at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:270)  
  129.     at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348)  
  130.     at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333)  
  131.     at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54)  
  132.     at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)  
  133.     at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:640)  
  134.     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:406)  
  135.     at weblogic.work.ExecuteThread.run(ExecuteThread.java:346)  
  136. Caused by: javax.el.ELException: java.lang.NullPointerException  
  137.     at javax.el.BeanELResolver.getValue(BeanELResolver.java:367)  
  138.     at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)  
  139.     at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)  
  140.     at com.sun.el.parser.AstValue.getValue(AstValue.java:139)  
  141.     at com.sun.el.parser.AstValue.getValue(AstValue.java:203)  
  142.     at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)  
  143.     at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)  
  144.     ... 130 more  
  145. Caused by: java.lang.NullPointerException  

Cause of this bug



 Problem Solution

As Timo mentioned , the problem is because there is any tabs defined.To solve this problem, you have to open a new tab or to set the content by default when loading the page for the first time.

1 - in the UIShellHome page , add this java script code that call a java method when the page is loaded. Insert this code inside the af:document

  <af:clientListener method="initialize" type="load"/>
        <af:serverListener type="launchDefaultActivity" method="#{backingBeanScope.homeBacking.launchDefaultActivity}"/>
        <f:facet name="metaContainer">           
                <af:resource type="javascript">
                  function initialize(event) {
                      var source = event.getSource();
                      AdfCustomEvent.queue(source, "launchDefaultActivity",
                      {
                      },
                      false);
                  }
                </af:resource>           
        </f:facet>
2- create a backing bean for the page
import oracle.adf.view.rich.render.ClientEvent;
import oracle.ui.pattern.dynamicShell.TabContext ;
import oracle.ui.pattern.dynamicShell.TabContext.TabContentAreaDirtyException;

public class HomeBacking {
    public HomeBacking() {
    }

    public void launchDefaultActivity(ClientEvent clientEvent) {
        TabContext tabContext = TabContext.getCurrentInstance();
        try {
            tabContext.setMainContent("WEB-INF/main-flow.xml#main-flow");
        } catch (TabContentAreaDirtyException e) {
            e.printStackTrace();
        }
       
    }
}
3- if you run the page , you will find an error in the log file like this

<UIXRegion> <_logNullValueMessage> <The expression "#{viewScope.tabContext.tabs[9].binding.regionModel}" that was specified for the RegionModel "value" attribute of the region component with id ":pt1:pt_region9" evaluated to null. Using an empty RegionModel instead.>

to fix this issue go to the page defiition of the page and add a page binding as follow
<page id="pt1" path="oracle.ui.pattern.dynamicShell.model.dynamicTabShellDefinition" Refresh="ifNeeded"/>
then in your page source "jsf page source code" set tge value of the pageTemplate to
<af:pageTemplate viewId="/oracle/ui/pattern/dynamicShell/dynamicTabShell.jspx" id="pt1" value="#{bindings.pt1}">

Run the page, the content will be show with no errors at all






Comments

Popular posts from this blog

Another user has changed the row with primary key oracle.jbo.Key[12 ].

Working With File Throgh WebUtill

weblogic windows JPS-01050: Opening of wallet based credential store failed. Reason java.io.IOException: Failed to lock cwallet.sso.lck