javax.servlet.ServletException: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource '/admin/permissions/help/viewglobalperms.vm'

Atlassian JIRA | Septa Cahyadiputra [Atlassian] | 3 years ago
tip
Click on the to mark the solution that helps you, Samebug will learn from it.
As a community member, you’ll be rewarded for you help.
  1. 0

    *Summary of The Bug* Confluence ancestor table URL as describe on our knowledge base article [here|https://confluence.atlassian.com/display/DOC/Rebuilding+the+Ancestor+Table] is inaccessible with the following stack trace: {code} java.lang.RuntimeException: javax.servlet.ServletException: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource '/admin/permissions/help/viewglobalperms.vm' at com.atlassian.confluence.util.profiling.ConfluenceSitemeshDecorator$1.doInTransaction(ConfluenceSitemeshDecorator.java:104) caused by: javax.servlet.ServletException: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource '/admin/permissions/help/viewglobalperms.vm' at com.atlassian.confluence.util.profiling.ConfluenceSitemeshDecorator$StreamingResponseWritingStrategy.renderToResponse(ConfluenceSitemeshDecorator.java:265) caused by: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource '/admin/permissions/help/viewglobalperms.vm' at com.atlassian.confluence.util.velocity.ConfigurableResourceManager.loadResource(ConfigurableResourceManager.java:401){code} *Cause of the Bug* The mentioned URL point to a {{vm}} file located in : {code}<Conf_Install_Dir>/confluence/admin/permissions/pagepermsadmin.vm{code} The source code of the above {{vm}} file pointed to a wrong directory since {{help}} directory under {{permissions}} directory is unavailable. {code}<head> <title>$action.getActionName($action.getClass().getName())</title> <meta name="help-path" content="/admin/permissions/help/viewglobalperms.vm"/> </head>{code} *Workaround* Edit the mentioned {{vm}} file below: {code}<Conf_Install_Dir>/confluence/admin/permissions/pagepermsadmin.vm{code} Remove the offending {{help}} directory in the {{head}} tag, so your {{head}} tag will look like the following: {code} <head> <title>$action.getActionName($action.getClass().getName())</title> <meta name="help-path" content="/admin/permissions/viewglobalperms.vm"/> </head> {code} Saved the modified {{vm}} file and restart your Confluence instance *Workaround 2* Put the files Confluence is looking for in the proper location: * Navigate to <confluence-install>/confluence/admin/permissions in the Confluence install location * Create and copy the directory and contents of ".../confluence/admin/help" to ".../confluence/admin/permissions/help" * Copy the contents of ".../confluence/admin/permissions" to ".../confluence/admin/permissions/help" No restart is necessary. See screenshot for example setup.

    Atlassian JIRA | 3 years ago | Septa Cahyadiputra [Atlassian]
    javax.servlet.ServletException: org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource '/admin/permissions/help/viewglobalperms.vm'

    Root Cause Analysis

    1. javax.servlet.ServletException

      org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource '/admin/permissions/help/viewglobalperms.vm'

      at com.atlassian.confluence.util.profiling.ConfluenceSitemeshDecorator$StreamingResponseWritingStrategy.renderToResponse()
    2. com.atlassian.confluence
      ConfluenceSitemeshDecorator$StreamingResponseWritingStrategy.renderToResponse
      1. com.atlassian.confluence.util.profiling.ConfluenceSitemeshDecorator$StreamingResponseWritingStrategy.renderToResponse(ConfluenceSitemeshDecorator.java:265)
      1 frame