ITIL 4 中文知识库 - User Directory 

Page / - 最后修改者 leeb chi 打开 2020/05/13, 02:14 

User Directory 
最后修改者 leeb chi
打开 2020/05/13, 02:14

内容列表

Failed to execute the [velocity] macro. Cause: [xwiki-mysql-db]. Click on this message for details.
org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for content [## Users class
#set ($xwikiUsersClassReference = $services.model.createDocumentReference($xcontext.database, 'XWiki', 'XWikiUsers'))
#set ($xwikiUsersClass = $xwiki.getDocument($xwikiUsersClassReference).xWikiClass)
## Configuration class
#set ($directoryPreferencesClassReference = $services.model.createDocumentReference($xcontext.database, 'XWiki', 'UserDirectoryPreferencesClass'))
#set ($directoryPreferencesClassName = $services.model.serialize($directoryPreferencesClassReference))
## Default Configuration
#set ($defaultConfigurationDocReference = $services.model.createDocumentReference($xcontext.database, 'XWiki', 'UserDirectoryConfiguration'))
#set ($defaultConfigurationDoc = $xwiki.getDocument($defaultConfigurationDocReference))
#set ($defaultConfiguration = $defaultConfigurationDoc.getObject($directoryPreferencesClassName))

## We use an ordered set to collect the live table columns because we want to avoid duplicates (they break the live
## table filtering query) and at the same time we want to preserve the column order.
#set ($columns = $collectionstool.orderedSet)
## Add the fixed columns that we want the user directory to always show.
#set ($discard = $columns.addAll(['_avatar', 'doc.name']))

## Default configuration
## The columns that the user directory will default to when no user preferences exist or when the user resets to default.
## These defaults can be configured by the wiki's admins.
#set ($isGlobalUserDirectory = $doc.fullName != 'Main.UserDirectory')
#if ($isGlobalUserDirectory)
  ## Fallback defaults.
  #set ($defaultColumnsString = 'first_name last_name')
#else
  ## Admin configured defaults.
  #set ($defaultColumnsString = "$!defaultConfiguration.getValue('columns').trim()")
#end
#set ($defaultColumns = $defaultColumnsString.split('\s+'))

## Current Configuration
#if ($isGlobalUserDirectory || $isGuest || $isSuperAdmin)
  ## Use the default configuration when editing the default configuration itself or
  ## when the current user doesn't have a profile document, so no preferences.
  #set ($configurationDoc = $defaultConfigurationDoc)
#else
  ## Use the current user's configuration
  #set ($configurationDoc = $xwiki.getDocument($xcontext.userReference))
#end
## Get or create the current configuration object, taking into account the values from the request (which is needed for
## the live preview).
#set ($configuration = $configurationDoc.updateObjectFromRequest($directoryPreferencesClassName))

## Read the configuration and initialize with defaults if necessary.
#set ($columnsString = $configuration.getValue('columns').trim())
#if ($columnsString == $NULL)
  #set ($columnsString = $defaultColumnsString)
  #set ($discard = $configuration.set('columns', $columnsString))
#end

## Check if they are the default preferences.
#set ($isCustomized = false)
#if ($columnsString != $defaultColumnsString)
  ## Mark it as a customized user directory.
  #set ($isCustomized = true)
#end

## Build the list of columns to display.
#foreach ($column in $columnsString.split('\s+'))
  ## Skip invalid columns.
  #if ($column.trim() != '' && $xwikiUsersClass.get($column))
    #set ($discard = $columns.add($column))
  #end
#end

##
## Build and display the resulting livetable, nothing else.
##
#macro (displayUserDirectoryLiveTable)
  {{html clean="false"}}
  #set ($columnsProperties = {})
  #foreach ($column in $columns)
    #set ($columnProperties = {
      'type': 'text',
      'html': false,
      'sortable': true,
      'filterable': true,
      'displayName': $xwikiUsersClass.get($column).translatedPrettyName
    })
    #set ($classPropertyType = $xwikiUsersClass.get($column).classType)
    #if ($column == '_avatar')
      #set ($discard = $columnProperties.putAll({
        'html': true,
        'sortable': false,
        'filterable': false,
        'link': 'view'
      }))
    #elseif ($column == 'doc.name')
      #set ($columnProperties.link = 'view')
    #elseif ($classPropertyType.endsWith('List'))
      #set ($columnProperties.type = 'list')
    #elseif ($classPropertyType.endsWith('Number'))
      #set ($columnProperties.type = 'number')
    #elseif ($classPropertyType.endsWith('Password'))
      #set ($discard = $columnProperties.putAll({
        'sortable': false,
        'filterable': false
      }))
    #elseif ($classPropertyType.endsWith('TextArea') || $classPropertyType.endsWith('Email') || $classPropertyType.endsWith('Groups'))
      #set ($columnProperties.html = true)
    #end
    #set ($discard = $columnsProperties.put($column, $columnProperties))
  #end
  ##
  ## Allow other applications to provide a different data source for the user directory livetable. For example, some application might define a different membership relation.
  #set ($userDirectoryLivetableResultsReference = $services.model.createDocumentReference($xcontext.database, 'XWiki', 'UserDirectoryLivetableResultsOverride'))
  #if (!$xwiki.exists($userDirectoryLivetableResultsReference))
    ## If no override is present, use the default data source.
    #set ($userDirectoryLivetableResultsReference = $services.model.createDocumentReference($xcontext.database, 'XWiki', 'UserDirectoryLivetableResults'))
  #end
  ## Note that we specify the class name even though we use a custom results page (which hard-codes it) because the class
  ## name is needed by the live table filters, to have a proper drop down list for Static List fields for instance
  ## (see XWIKI-9660).
  #set ($options = {
    'className': $services.model.serialize($xwikiUsersClassReference, 'local'),
    'resultPage' : "$services.model.serialize($userDirectoryLivetableResultsReference)",
    'translationPrefix' : 'xe.userdirectory.',
    'tagCloud' : true,
    'rowCount': 10,
    'outputOnlyHtml': true
  })
  ## Add a filter for subwikis
  #if ($xcontext.database != $xcontext.mainWikiName && "$!services.wiki" != '' && "$!services.wiki.user" != '')
    #set ($userScope = $services.wiki.user.getUserScope($services.wiki.currentWikiId))
    #if ($userScope == 'GLOBAL_ONLY')
      #set ($discard = $options.put('extraParams', 'userScope=global'))
    #else
      #set ($discard = $options.put('extraParams', 'userScope=local'))
    #end
    #if ($userScope == 'LOCAL_AND_GLOBAL')
      <form class='xform third' action=''>
        <dl>
          <dt>
            <label for='userScopeFilter'>$services.localization.render('userdirectory.userScopeFilter')</label>
            <span class='xHint'>$services.localization.render('userdirectory.userScopeFilter.hint')</span>
          </dt>
          <dd>
            <select name='userScope' id='userScopeFilter'>
              <option value='local'>$services.localization.render('userdirectory.userScopeFilter.local')</option>
              <option value='global'>$services.localization.render('userdirectory.userScopeFilter.global')</option>
            </select>
          </dd>
        </dl>
      </form>
    #end
  #end
  ## We can't filter the values of the 'disabled' user profile property directly from the 'extraParams' live table
  ## results option because we can't express 'not equal' (we need to say: include only the user profiles for which the
  ## value of the 'disabled' property is not equal to 1). An user profile that doesn't have any value set for the
  ## 'disabled' property is enabled.
  ## We don't hide the disabled user profiles when the active and disabled columns are present because the user can use
  ## the live table filters to achieve this.
  #set ($hideDisabledProfilesValue = $configuration.getValue('hideDisabledProfiles'))
  #if (!$columns.contains('active')
      && ($hideDisabledProfilesValue == 1 || ("$!hideDisabledProfilesValue" == '' &&
      $configuration.xWikiClass.get('hideDisabledProfiles').getValue('defaultValue') == 1)))
    #set ($options.extraParams = "$!options.extraParams&hideDisabledProfiles=true")
  #end
  ## We need to know which users are disabled or inactive in order to display them differently.
  #set ($discard = $columns.add('active'))
  #set ($discard = $columnsProperties.putIfAbsent('active', {'type': 'hidden'}))
  ## Display the computed livetable.
  #livetable('userdirectory' $columns $columnsProperties $options)
  {{/html}}
#end

## xredirect value used to come back to the current URL when performing actions
#set ($xredirect = $doc.getURL($xcontext.action, $request.queryString))

##
## Displays the customization form and preview. Also handles the form's actions.
##
#macro (displayUserDirectoryCustomizationForm)
  #if (!$configurationDoc.hasAccessLevel('edit'))
    {{error}}$services.localization.render('platform.userdirectory.customizeNotAllowed'){{/error}}
  #else
    #handleUserDirectoryAction()
    ##
    ## Customization form
    ##
    (% id="HUserDirectoryConfiguration" %)
    == {{translation key="userdirectory.configuration.title"/}} ==
    {{html clean="false"}}
    <form class="user-directory-settings xform" action="$configurationDoc.getURL('save')" method="post">
      <div class="hidden">
        <input type="hidden" name="form_token" value="$escapetool.xml($services.csrf.token)" />
        <input type="hidden" name="objectPolicy" value="updateOrCreate" />
        <input type="hidden" name="xredirect" value="$escapetool.xml($xredirect)" />
        <input type="hidden" name="comment" value="Updated user directory preferences" />
      </div>
      <dl>
        #displayProperty('columns' $configuration 'edit')
        #displayProperty('hideDisabledProfiles' $configuration 'edit')
      </dl>
      <p>
        <input class="button" type="submit" name="action_save"
          value="$escapetool.xml($services.localization.render('xe.userdirectory.customizeSaveButtonLabel'))"/>
        #set ($resetQueryString = "$!request.queryString&" + $escapetool.url({
          'action': 'reset',
          'form_token': $services.csrf.token,
          'xredirect': $xredirect
        }))
        #set ($resetURL = $doc.getURL($xcontext.action, $resetQueryString))
        <a href="$escapetool.xml($resetURL)" class="button secondary">
          $escapetool.xml($services.localization.render('xe.userdirectory.customizeResetButtonLabel'))
        </a>
      </p>
    </form>
    {{/html}}
  #end
#end

#macro (handleUserDirectoryAction)
  #if ("$!request.action" != '')
    #if ($services.csrf.isTokenValid($request.form_token))
      #if ($request.action == 'reset')
        #if ($isGlobalUserDirectory)
          ## For the global configuration it might be best to keep the object but set default values.
          #set ($discard = $configuration.set('columns', $defaultColumnsString))
        #else
          ## For user preferences, just remove the object.
          #set ($discard = $configurationDoc.removeObject($configuration))
        #end
        #set ($discard = $configurationDoc.save('Reset user directory preferences.'))
      #end
      ## Redirect using xredirect so that the page can be safely refreshed after an action.
      #set ($discard = $response.sendRedirect($request.xredirect))
    #elseif ($request.getHeader('X-Requested-With') == 'XMLHttpRequest')
      #set ($discard = $response.sendError(401, 'CSRF token verification failed!'))
    #else
      #set ($discard = $response.sendRedirect($services.csrf.resubmissionURL))
    #end
    #stop()
  #end
#end

#macro (displayProperty $propertyName $object $action)
  #set ($propertyClass = $object.xWikiClass.get($propertyName))
  #set ($isCheckbox = $propertyClass.getValue('displayFormType') == 'checkbox')
  #set ($fieldDisplay = $stringtool.removeEnd($stringtool.removeStart($object.display($propertyName, $action),
    '{{html clean="false" wiki="false"}}'), '{{/html}}'))
  <dt>
    <label #if ($action == 'edit' && !$isCheckbox)
        for="$escapetool.xml("${object.xWikiClass.name}_${object.number}_$propertyName")"#end>
      #if ($isCheckbox)
        $fieldDisplay
      #end
      $escapetool.xml($propertyClass.translatedPrettyName)
    </label>
    <span class="xHint">
      $!escapetool.xml($propertyClass.hint)
    </span>
  </dt>
  <dd>#if (!$isCheckbox)$fieldDisplay#end</dd>
#end

##
## Displays the user directory with customization status and customization form for when it is being customized.
##
#macro (displayUserDirectoryCustomizationOptions $customize)
  ##
  ## Ability to customize the view.
  ##
  #if ($customize)
    #displayUserDirectoryCustomizationForm()
  #elseif ($isCustomized)
    {{warning}}
    $services.localization.render('xe.userdirectory.isCustomizedWarning', [
      "$doc.fullName",
      $escapetool.url({
        'customize': true,
        'action': 'reset',
        'xredirect': $xredirect
      }),
      "$doc.fullName",
      'customize=true'
    ])
    {{/warning}}
  #elseif ($isGuest)
    {{info}}
    $services.localization.render('xe.userdirectory.canCustomizeInfoGuest', ["path:$doc.getURL('login')"])
    {{/info}}
  #else
    {{info}}
    $services.localization.render('xe.userdirectory.canCustomizeInfo', ["$doc.fullName", 'customize=true'])
    {{/info}}
  #end
#end

##
## Displays the user directory.
##
#macro (displayUserDirectory $customize)
  #set ($discard = $xwiki.jsx.use('XWiki.UserDirectoryMacros'))
  #displayUserDirectoryCustomizationOptions($customize)

  #if ($customize)
    (% id="HUserDirectoryCustomizePreview" %)
    == {{translation key="xe.userdirectory.customizePreviewTitle"/}} ==

  #end
  #displayUserDirectoryLiveTable()
#end]
 at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:139)
 at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:52)
 at org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock(AbstractScriptMacro.java:286)
 at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:182)
 at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:58)
 at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:297)
 at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183)
 at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:101)
 at org.xwiki.display.internal.DocumentContentAsyncExecutor.executeInCurrentExecutionContext(DocumentContentAsyncExecutor.java:348)
 at org.xwiki.display.internal.DocumentContentAsyncExecutor.execute(DocumentContentAsyncExecutor.java:221)
 at org.xwiki.display.internal.DocumentContentAsyncRenderer.execute(DocumentContentAsyncRenderer.java:107)
 at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:157)
 at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:54)
 at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:270)
 at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:247)
 at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.execute(DefaultBlockAsyncRendererExecutor.java:125)
 at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:67)
 at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:43)
 at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:96)
 at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:39)
 at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:123)
 at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:52)
 at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:68)
 at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:42)
 at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:1210)
 at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1351)
 at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1318)
 at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1228)
 at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1360)
 at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:791)
 at jdk.internal.reflect.GeneratedMethodAccessor459.invoke(Unknown Source)
 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.base/java.lang.reflect.Method.invoke(Method.java:566)
 at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
 at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
 at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
 at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
 at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369)
 at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
 at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:420)
 at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207)
 at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
 at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:259)
 at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
 at com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:358)
 at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:95)
 at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:217)
 at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:180)
 at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:137)
 at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:53)
 at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:264)
 at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
 at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:264)
 at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:247)
 at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
 at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:772)
 at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:745)
 at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:725)
 at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:711)
 at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:78)
 at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2490)
 at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:2468)
 at com.xpn.xwiki.pdf.impl.PdfExportImpl.export(PdfExportImpl.java:152)
 at com.xpn.xwiki.web.ExportAction.export(ExportAction.java:185)
 at com.xpn.xwiki.web.ExportAction.render(ExportAction.java:91)
 at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:500)
 at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:218)
 at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
 at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
 at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
 at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:112)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:109)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:132)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
 at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
 at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:615)
 at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
 at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)
 at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
 at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
 at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with id [xwiki:Main.UserDirectory]
 at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:227)
 at com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:358)
 at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:131)
 ... 109 more
Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'updateObjectFromRequest' in  class com.xpn.xwiki.api.Document threw exception com.xpn.xwiki.XWikiException: Error number 3202 in 3: Exception while reading document [xwiki:XWiki.UserDirectoryPreferencesClass] at 19657:xwiki:Main.UserDirectory[line 42, column 42]
 at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:243)
 at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:187)
 at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280)
 at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:567)
 at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71)
 at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:142)
 at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342)
 at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:259)
 at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222)
 ... 111 more
Caused by: com.xpn.xwiki.XWikiException: Error number 3202 in 3: Exception while reading document [xwiki:XWiki.UserDirectoryPreferencesClass]
 at com.xpn.xwiki.store.XWikiHibernateStore.loadXWikiDoc(XWikiHibernateStore.java:1000)
 at com.xpn.xwiki.store.XWikiCacheStore.loadXWikiDoc(XWikiCacheStore.java:363)
 at com.xpn.xwiki.XWiki.getDocument(XWiki.java:2116)
 at com.xpn.xwiki.XWiki.getDocument(XWiki.java:2178)
 at com.xpn.xwiki.XWiki.getXClass(XWiki.java:6746)
 at com.xpn.xwiki.objects.classes.BaseClass.newCustomClassInstance(BaseClass.java:1238)
 at com.xpn.xwiki.doc.XWikiDocument.createXObject(XWikiDocument.java:2580)
 at com.xpn.xwiki.doc.XWikiDocument.updateXObjectFromRequest(XWikiDocument.java:7701)
 at com.xpn.xwiki.doc.XWikiDocument.updateObjectFromRequest(XWikiDocument.java:7724)
 at com.xpn.xwiki.doc.XWikiDocument.updateObjectFromRequest(XWikiDocument.java:7686)
 at com.xpn.xwiki.doc.XWikiDocument.updateObjectFromRequest(XWikiDocument.java:7665)
 at com.xpn.xwiki.api.Document.updateObjectFromRequest(Document.java:2685)
 at jdk.internal.reflect.GeneratedMethodAccessor1850.invoke(Unknown Source)
 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.base/java.lang.reflect.Method.invoke(Method.java:566)
 at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395)
 at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384)
 at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173)
 ... 118 more
Caused by: org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection
 at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:112)
 at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
 at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
 at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
 at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:107)
 at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getPhysicalConnection(LogicalConnectionManagedImpl.java:134)
 at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.getConnectionForTransactionManagement(LogicalConnectionManagedImpl.java:250)
 at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.begin(LogicalConnectionManagedImpl.java:258)
 at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.begin(JdbcResourceLocalTransactionCoordinatorImpl.java:246)
 at org.hibernate.engine.transaction.internal.TransactionImpl.begin(TransactionImpl.java:83)
 at org.hibernate.internal.AbstractSharedSessionContract.beginTransaction(AbstractSharedSessionContract.java:467)
 at org.hibernate.engine.spi.SessionDelegatorBaseImpl.beginTransaction(SessionDelegatorBaseImpl.java:486)
 at com.xpn.xwiki.internal.store.hibernate.HibernateStore.beginTransaction(HibernateStore.java:790)
 at com.xpn.xwiki.store.XWikiHibernateBaseStore.beginTransaction(XWikiHibernateBaseStore.java:577)
 at com.xpn.xwiki.store.XWikiHibernateStore.loadXWikiDoc(XWikiHibernateStore.java:870)
 ... 135 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
 at jdk.internal.reflect.GeneratedConstructorAccessor1129.newInstance(Unknown Source)
 at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
 at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
 at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:990)
 at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:341)
 at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2187)
 at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2219)
 at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2014)
 at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:776)
 at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
 at jdk.internal.reflect.GeneratedConstructorAccessor312.newInstance(Unknown Source)
 at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
 at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
 at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:386)
 at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)
 at org.apache.commons.dbcp2.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:55)
 at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:355)
 at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:889)
 at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:424)
 at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:349)
 at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:134)
 at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:753)
 at com.xpn.xwiki.store.DBCPConnectionProvider.getConnection(DBCPConnectionProvider.java:254)
 at org.hibernate.internal.NonContextualJdbcConnectionAccess.obtainConnection(NonContextualJdbcConnectionAccess.java:38)
 at org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl.acquireConnectionIfNeeded(LogicalConnectionManagedImpl.java:104)
 ... 145 more
Caused by: java.net.UnknownHostException: xwiki-mysql-db
 at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:797)
 at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1505)
 at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1364)
 at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1298)
 at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:188)
 at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:300)
 ... 166 more
The user directory can be customized to display the columns you wish to see, but you need to log in first.

点击一个或更多标签过滤列表 再次点击标签取消过滤

每页  上一页 下一页 页 
Picture | User ID | xe.userdirectory.active
The environment prevents the table from loading data.

上一页 下一页 页

(*) 某些文档需要特殊访问权限才能浏览

() Some pages have a computed title. Filtering and sorting by title will not work as expected for these pages.