Experience Manager Troubleshooting
Contents
This page describes common problems with the Experience manager and how to solve them:
-
Preview of channels in the CMS and in a separate window does not work behind Apache Web Server
-
Channels are showing a blank page with message to reload page
-
Stacktraces MissingResourceException when clicking 'Channel Settings' in Experience manager
-
Changes in Blueprints through the Console are not visible in the Experience manager at 'Add Channel'
-
Component configuration not persisted when user publishes changes in the Experience manager
Common Problems
Experience Manager is not visible
Make sure the logged in CMS user has the userrole
xm.channel.user
Users not having the above userrole won't see the Experience manager application.
Channel Overview does not show any channels
In case the Channel Overview is empty while you do have actual channels, then most likely you have one (or more) of the following problems:
- The CMS host over which you access the CMS is not configured below /hst:platform.
- The CMS host is configured below /hst:platform, but the hostGroup it is configured in does not match the hostGroup of the HST webapp hst configuration(s).
- You have accessed the CMS with queryString ?HstMode=false.
- The HST site webapp(s) does not have the property hst.configuration.rootPath in hst-config.properties pointing to the HST root node for that webapp.
- The hst-api.jar is in the CMS webapp as explicit jar. Make sure it gets removed since it should be part of the shared lib.
- CMS webapp web.xml does not contain the mandatory HST context params and filter.
- The current CMS user does not have privilege to see any channel, see Access Channels.
To fix 1, 2 and 3, take a look at Hosts Configuration. For 4, take a look at HST Configuration Model Introduction. Fixing 5 is a matter of removing the hst-api.jar from the CMS dependencies. To fix 6, it is best to compare your CMS web.xml with the web.xml as created by an archetype project.
Wrong channels are shown in Channel Overview
In case the wrong channels are shown (or the wrong URLs for the live channels), then the matching CMS host most likely has a wrong hostGroup. For example, the matching CMS host is below the hostGroup 'acct-ent' while it should for example have been the 'prod-env' since production URLs should be displayed. Follow the documentation in Hosts Configuration.
Not all channels are listed in Channel Overview
In case you have multiple HST site webapps and you are missing the channels from a particular HST site webapp, then most likely:
- one of the HST site webapps has its channels below a different hostGroup then the hostGroup of the matched CMS host (below /hst:platform) or
- one of the HST site webapps does not have the correct HST rootPath configured in its hst-config.properties.
- the current CMS user does not have privilege for all channels, see Access Channels and Channel Filtering.
See Hosts Configuration or HST Configuration Model Introduction to fix 1 and/or 2.
Channel does not load and network shows a 409 (conflict)
This can happen in a clustered environment when you did not set up the loadbalancer correctly. See Bloomreach Experience Manager Loadbalancing Requirements how to set up the loadbalancer correctly.
'New' option is not available in Page menu
If in the Experience manager you have the menu 'Page' open but you do not see the 'New' option as shown in the image below, then your project configuration does not have any prototype pages defined. The option will only be available for configurations that have prototype pages. If you add prototypes, the button will appear.
Preview of channels in the CMS and in a separate window does not work behind Apache Web Server
Make sure that VirtualHost configuration for the cms also contains a extra PROXYPASS for /site/
<VirtualHost *:80> ServerName cms.example.com ProxyPreserveHost Off #INCLUDE THE EXTRA PROXYPASS RULE FOR /site HERE ProxyPass /site/ http://127.0.0.1:8080/site/ ProxyPass / http://127.0.0.1:8080/cms/ ProxyPassReverse / http://127.0.0.1:8080/cms/ ProxyPassReverseCookiePath /cms / </VirtualHost>
Opening a channel shows a blank page
This can happen if your network infrastructure have disabled http HEAD requests, for example in a Citrix virtualization environment. In this case, you have to contact your system administrators in order to verify HEAD request type is not blocked.
This can also happen if you integrated the CMS authoring application with a web application security framework (such as Spring Security) which sets the response header X-Frame-Options to DENY. Bloomreach Experience Manager requires an X-Frame-Options response header value SAMEORIGIN. Spring Security Framework sets it to DENY by default since version 4.0. If you integrated with Spring Security Framework version 4.0 or later, change the response header value to SAMEORIGIN.
Wrong or empty channel opens in Experience manager
In the logs you can find messages back something like
WARN http-nio-8080-exec-3 [VirtualHostsService.warnDuplicateChannel:450] Skip channel with id '${project-channel}' because already present for host group '${project-specific-hostgroup}'. Most likely there is a parent channel that already is a channel mngr channel. Set 'hst:nochannelinfo = true' on mount 'MountService [jcrPath=${project-specific-path}, hostName=${project-specific-host}]' to avoid this problem.
This can be a result of a very specific setup that used to work a tiny bit different in older versions, but works a tiny bit different in versions since CMS 12.0.0. The cause and fix and described at Explicitly hide a Mount in the Experience manager.
Unable to find package resource nl.png
If you get a warning like this in the log files:
WARN [org.apache.wicket.markup.html.PackageResource.getResourceStream():594] Unable to find package resource [path = org/onehippo/cms7/channelmanager/channels/nl.png, style = null, locale = null]
make sure the hst:locale in the accessed mount is a proper Java locale like nl_NL
Channels are showing a blank page with message to reload page
- Try reloading CMS interface after removing browser cache data
- Check if response header contains header with name X-Frame-Options and value "DENY".
Stacktraces MissingResourceException when clicking 'Channel Settings' in Experience manager
When you see stacktraces when clicking 'Channel Settings' like below:
17.12.2013 15:05:55 ERROR [org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage():116] Error occurred during error handling, give up! org.apache.cxf.interceptor.Fault: Can't find bundle for base name org.onehippo.forge.channels.WebsiteInfo, locale en at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:128) at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:167) ... ... ... Caused by: java.util.MissingResourceException: Can't find bundle for base name org.example.channels.WebsiteInfo, locale en at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499) at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1322) at java.util.ResourceBundle.getBundle(ResourceBundle.java:795) ... ...
Then you either do not have added i18n resource bundles (in this case WebsiteInfo.properties, WebsiteInfo_de.properties, etc) next to the WebsiteInfo class, or, in case you have, you do not have added to the site/components/pom.xml <build> section the following part:
<build> ... ... <resources> <resource> <directory>src/main/java</directory> <filtering>false</filtering> <includes> <include>**/*.properties</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build>
Changes in Blueprints through the Console are not visible in the Experience Manager at 'Add Channel'
This is due to caching of blueprints. To be able to see the changes, made to blueprints in the /console, in the Experience manager, you need to logout from the CMS and login again.
Blueprint 'reusing existing content' does not work
Even though you have added a hst:site node with hst:content property to the blueprint, still you do not get to see a picker to select the existing content to use for a new channel. When this is the case, it might be that for your blueprint, you still have a bootstrap content node (same name as blueprint node) configured below /hippo:configuration/hippo:queries/hippo:templates/new-subsite/hippostd:templates. That one takes precedence over the hst:site/hst:content property.
No borders visible for containers and components
The Experience manager relies on HTML comments in the markup to be able to render containers and components. For instance, taken from our demo environment, the HST inserts comments like this in the page:
<!-- { "HST-Label":"bannercarousel", "HST-LastModified":"1490608164816", "HST-XType":"HST.Item", "uuid":"8d3699eb-fb88-41c9-8d10-590c2b7f9335", "HST-Type":"CONTAINER_ITEM_COMPONENT", "refNS":"r33_r1_r1_r1", "url":"/site/_cmsinternal/uk?_hn:type=component-rendering&_hn:ref=r33_r1_r1_r1"} -->
with a matching end comment:
<!-- { "uuid":"8d3699eb-fb88-41c9-8d10-590c2b7f9335", "HST-End":"true"} -->
If (blue) borders are not showing for containers and components in the Experience manager, this can be caused by an optimization in your webapp container or web server. For instance, in Tomcat there could be a filter installed that strips out HTML comments. Web servers like Apache httpd or Nginx also have optimization capabilities.
To resolve this, configure your set-up to not strip HTML comments during CMS requests.
Channel settings not editable
There can be multiple reasons why channel settings are not editable (read-only). It can be that the channel settings have been modified by someone else but not yet published. In this case, the settings are locked. It can also be that the entire hst:configuration node has hst:locked = true, resulting in that everything is locked. Another possibility is that the hst:channel node is located directly below the hst:configuration node and not below the hst:workspace. So if for example your channel is myproject, and the channel node location is
/hst:hst: /hst:configurations: /myproject: /hst:channel: /hst:channelinfo:
then the channel settings in the Experience manager will be read-only. To make the channel settings editable, move the node below hst:workspace:
/hst:hst: /hst:configurations: /myproject: /hst:workspace: /hst:channel: /hst:channelinfo:
Last reason why the channel settings can be read-only is the hst:channel node is not configured below the hst:configuration for the channel you are looking at, but that it comes from an inherited channel. In that case, the channel settings are read-only as well.
Projects feature does not work
The fix described here only applies to Bloomreach Experience Manager 13.0 and 13.1. As of version 13.2, the hst:defaulthostname property cannot cause this problem any more.
If the Projects feature malfunctions (on other hosts that localhost typically), it might be that the property hst:defaulthostname is configured on a hst:hosts node. When present, the property hst:defaulthostname must be removed.
Component configuration not persisted when user publishes changes in the Experience manager
The Experience manager first does a PUT when pressing the publish button, and it does a DELETE when deleting a component from a container. Use your a network monitor (for example in your browser's developer tools) to check if PUT and/or DELETE requests are failing. This may be caused by the server environment blocking PUT and/or DELETE requests.