IBM Support

IBM® Connections embedded experience gadgets fail to render when HTTP is disabled on the Domino® server with Shindig

Technote (troubleshooting)


Problem

When the Domino server with Shindig is configured to allow HTTPS connections only, and HTTP is disabled, Connections embedded experiences fail to render. Users who attempt to access a Connections gadget see the following message:

Error, please try again.

The problem occurs because the Domino server with Shindig makes an HTTP request to itself to try and get the viewer of the gadget. Because the HTTP request is made over HTTP rather than HTTPs, the Domino server with Shindig responds with a 302 error, redirecting the request over HTTPs. In attempting to parse the response, the code fails to account for the redirect, and throws an exception. As a result, the Connections embedded experience gadget cannot verify that the user is logged in, and cannot use OAuth. Instead the gadget tries to access information about the object in Connections anonymously, causing an error in the embedded experience.

The trace logs on the Domino server with Shindig will contain the following entry:

org.apache.shindig.gadgets.preload.PreloadException: org.apache.commons.json.JSONException: Expecting '{' on line 1, column 0 instead, obtained token: 'Token: EOF'
at org.apache.shindig.gadgets.preload.ConcurrentPreloads$FailedPreload.toJson(ConcurrentPreloads.java:101)
at org.apache.shindig.gadgets.preload.PipelineExecutor.execute(PipelineExecutor.java:131)
at org.apache.shindig.gadgets.rewrite.PipelineDataGadgetRewriter.rewrite(PipelineDataGadgetRewriter.java:72)
at org.apache.shindig.gadgets.render.HtmlRenderer.render(HtmlRenderer.java:88)
at org.apache.shindig.gadgets.render.Renderer.render(Renderer.java:101)
at org.apache.shindig.gadgets.servlet.GadgetRenderingServlet.render(GadgetRenderingServlet.java:107)
at org.apache.shindig.gadgets.servlet.GadgetRenderingServlet.doGet(GadgetRenderingServlet.java:85)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:693)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1661)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1595)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:131)
at com.ibm.fiesta.inotes.internal.servlet.OpenSocialComponentEnablementFilter.doFilter(OpenSocialComponentEnablementFilter.java:44)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
at org.apache.shindig.auth.AuthenticationServletFilter.callChain(AuthenticationServletFilter.java:186)
at org.apache.shindig.auth.AuthenticationServletFilter.doFilter(AuthenticationServletFilter.java:97)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
at org.apache.shindig.common.servlet.HostFilter.doFilter(HostFilter.java:38)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:188)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:116)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:77)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:895)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:932)
at com.ibm.pvc.internal.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:85)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:500)
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:864)
at com.ibm.pvc.internal.webcontainer.WebContainerBridge.handleRequest(WebContainerBridge.java:25)
at com.ibm.domino.osgi.core.webContainer.WebApplicationsTracker.doService(WebApplicationsTracker.java:141)
at sun.reflect.GeneratedMethodAccessor157.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at com.ibm.domino.xsp.adapter.osgi.webContainer.OSGIWebContainerModule.invokeWebAppContainerService(OSGIWebContainerModule.java:207)
at com.ibm.domino.xsp.adapter.osgi.webContainer.OSGIWebContainerModule.doService(OSGIWebContainerModule.java:178)
at com.ibm.domino.xsp.adapter.osgi.OSGIService.doService(OSGIService.java:417)
at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:350)
at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:306)
at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)
Caused by: org.apache.commons.json.JSONException: Expecting '{' on line 1, column 0 instead, obtained token: 'Token: EOF'
at org.apache.commons.json.internal.Parser.parseObject(Parser.java:183)
at org.apache.commons.json.internal.Parser.parse(Parser.java:120)
at org.apache.commons.json.internal.Parser.parse(Parser.java:85)
at org.apache.commons.json.JSONObject.<init>(JSONObject.java:128)
at org.apache.shindig.gadgets.preload.PipelinedDataPreloader.parseSocialResponse(PipelinedDataPreloader.java:213)
at org.apache.shindig.gadgets.preload.PipelinedDataPreloader$SocialPreloadTask.call(PipelinedDataPreloader.java:186)
at org.apache.shindig.gadgets.preload.PipelinedDataPreloader$SocialPreloadTask.call(PipelinedDataPreloader.java:139)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314)
at java.util.concurrent.FutureTask.run(FutureTask.java:149)
at org.apache.shindig.gadgets.preload.ConcurrentPreloaderService.preload(ConcurrentPreloaderService.java:62)
at org.apache.shindig.gadgets.preload.PipelineExecutor.execute(PipelineExecutor.java:128)
... 38 more


Resolving the problem

To fix this problem, complete the following steps:

  1. Open the Configuration settings document for the Domino server with Shindig and click the Social Edition>Advanced>container.js tab.
  2. Click Set/Modify Parameters.
  3. In the Item field, type: gadgets.osDataUri
    In the Value field, type:
    https:// /fiesta/rpc where is the name of the Domino server running Shindig.
  4. Restart the Domino server with Shindig.

Document information

More support for: IBM Domino
OpenSocial

Software version: 9.0, 9.0.1

Operating system(s): AIX, Linux, Windows

Reference #: 1663309

Modified date: 01 May 2014