My Oracle Support Banner

WebCenter Portal Framework Application Redirects to "error404.jsp" with Latest WebCenter Portal Bundle Patches (Doc ID 2428609.1)

Last updated on JANUARY 26, 2023

Applies to:

Oracle WebCenter Portal - Version 11.1.1.9.161018 to 11.1.1.9.180717 [Release 11g]
Information in this document applies to any platform.

Symptoms

Note: The following example represents a fictitious sample.   Any similarity to an actual Portal Internal ID is purely coincidental and not intended in any manner.  

WebCenter Portal Framework Application redirects to error404.jsp page after redeploy if applying any of the latest WebCenter Portal Bundle Patches starting with 11.1.1.9.161018 up to the 11.1.1.9.180717 bundle patch.

 

STEPS

 

The issue can be reproduced with the following steps:

 

  1. Create a test portal.

    • Create a new WCP Framework application in JDeveloper.
      e.g.: Name: Portal404Error

    • Create a Page.
      e.g.: Page2.jspx

    • Open the pages.xml.

    • Drag Page2.jspx to pages.xml.

    • Select 'Home' in the Hierarchy, choose 'Delegate Security' option and remove the 'anonymous-role' to make the home.jspx protected.

    • Select 'Page2' in the Hierarchy, choose 'Delegate Security' option and remove the 'anonymous-role' to make the Page2.jspx protected.

    • Open default-navigation-model.xml. Remove 'Page Hierarchy'.

    • Insert a Page Link to home.jspx.

      Id: Home
      Type: Page
      URL: page://oracle/webcenter/portalapp/pages/home.jspx
      Select: Redirect URL
      Title: Home

    • Insert a Page Link to Page2.jspx.

      Id: Home
      Type: Page
      URL: page://oracle/webcenter/portalapp/pages/Page2.jspx
      Select: Redirect URL
      Title: Page2

    • Open the error404.jsp page and change this:

      if (isAuthenticated == null || !isAuthenticated.booleanValue())
          response.sendRedirect(request.getContextPath() + "/adfAuthentication?success_url=/faces" + request.getServletPath());
      else
          response.sendError(404);
      %>


      By this as suggested in Bug 23346620 :

      if (isAuthenticated == null || !isAuthenticated.booleanValue())
          response.sendRedirect(request.getContextPath() + "/adfAuthentication?success_url=/faces" + (request.getAttribute("javax.servlet.forward.path_info") != null ?
          request.getAttribute("javax.servlet.forward.path_info") : request.getServletPath()));
      else
          response.sendError(404);
      %>


    • Edit the Portal Project properties, select Java EE Application and change the Jave EE Web Context Root to shorter name.
      e.g.: Portal404Error


  2. Test Deployment with WCP BP 11.1.1.9.160719.
     
    • Deploy the application to the WebCenter Domain to the WC_CustomPortal managed server.

    • Access the application using the application context root.

      http://<HOSTNAME>:<PORT>/Portal404Error

      Here you will be prompted for user credentials.
      After login you will get directed to the Home.jsp page.

    • Redeploy the application.

    • Access the application using a direct page URL.

      http://<HOSTNAME>:<PORT>/Portal404Error/faces/oracle/webcenter/portalapp/pages/Page2.jspx

      Here you will be prompted for user credentials.
      After login you will get directed to the Page2.jsp page.

  3. Test Deployment with a bundle patch between 11.1.1.9.161018 up to 11.1.1.9.180717.

    • Apply one of the affected bundle patches.

    • Delete the following folder to be sure all changes from latest bundle patch are taken:

      [DOMAIN_HOME]/servers/WC_CustomPortal/tmp

    • Deploy the application to the WebCenter Domain to the WC_CustomPortal managed server.

    • Access the application using the application context root.

      http://<HOSTNAME>:<PORT>/Portal404Error

      Here you will be prompted for user credentials.
      After login you will get this error:

      Error 404--Not Found

    • Access the application again using the application context root.

      http://<HOSTNAME>:<PORT>/Portal404Error

      This time you will not be prompted for login as user is already authenticated. But you will still be getting same error.

      Error 404--Not Found

      Once you get this error there is no way to recover.

    • Access the application again using direct URL to a page:

      http://<HOSTNAME>:<PORT>/Portal404Error/faces/oracle/webcenter/portalapp/pages/Page2.jspx

      This works.

  

NOTE:

A variant of the test application is using the default Page Hierarchy (pages.xml) instead of removing it from the default-navigation-model.xml and adding page links.
In this case scenario access to direct pages doesn't work either. 
e.g. this link will also return 404 error:

http://<HOSTNAME>:<PORT>/Portal404Error/faces/oracle/webcenter/portalapp/pages/Page2.jspx

 

Changes

 

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Changes
Cause
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.