Troubleshooting

You may encounter the following issues:

This page discusses:

Changes in .jsp files are not taken in account

While changes to Javascript, CSS and images files are taken into account directly, JSP files are compiled by Jetty for performance reasons.

However, it is possible to switch the Jetty JSP servlet in development mode in the Mashup UI web.xml file located in <DATADIR>/webapps/360-mashup-ui/WEB-INF/web.xml. To do so, edit the following section:

<!-- Enables development mode on JSP servlet -->
<servlet>
  <servlet-name>jsp</servlet-name>
  <init-param>
    <param-name>development</param-name>
    <!-- SWITCH THIS TO TRUE TO GET YOUR JSP FILES RELOADED ON EACH REQUESTS -->
    <param-value>true</param-value>
  </init-param>
</servlet>

URL/XML encoding issues

Sometimes, the default behavior of the Mashup UI does not fit your needs:

  • A meta value is URL encoded where it should not be, leading to invalid links (or the opposite).

  • A meta value is not XML escaped, leading to invalid HTML (or the opposite).

Having complex rules to try to determine whether we should escape the content or not would be very hard and will obviously fail at some point. Instead, a default behavior per situation that matches 90% of the cases is used. For example, when building links, as in the Hit title link field, meta values will be URL encoded by default.

Nevertheless, a few flags have been added to let the user invert the default behavior which allows you to control everything by yourself:

  • !u: Invert URL encoding, for example: @{bi.publicurl!u}
  • !x: Invert XML escaping, for example: @{bi.description!x}
  • !h: Remove the highlight on metas
  • You can use + or - signs after the exclamation mark to force or remove the value, for example: @{bi.publicurl!+u} or @{bi.description!-x}

You can also combine flags, for example: @{bi.name!ux}.

I can't see my new code after deploying a custom plugin

For MS Windows deployments, it may happen that you can't see your newly coded element after deploying a custom plugin (e.g. a custom widget).

The problem comes from the new version of Jetty (9.4.) which locks the files it accesses in mmap mode. For more information, see https://www.eclipse.org/jetty/documentation/9.4.x/troubleshooting-locked-files-on-windows.html

The problem was fixed by adding the following servlet definition in the Mashup UI <DATADIR>/webapps/360-mashup-ui/WEB-INF/web.xml file:

<servlet>
  <servlet-name>default</servlet-name>
  <servlet-class>org.eclipse.jetty.servlet.DefaultServlet</servlet-class>
  <init-param>
    <param-name>useFileMappedBuffer</param-name>
    <param-value>false</param-value>
  </init-param>
  <load-on-startup>0</load-on-startup>
</servlet>
Important: If you meet this problem in your Mashup UI instance, restarting the search server should solve the issue.