title: getQueryString on ExternalContext's Request object returns null on WebSphere
body: <p>I have a problem using JSF 1.1 (MyFaces 1.1.8) on WebSphere. When deploying my application on Tomcat 5.5, this behavior does not apply and everything works fine.</p>
  
  <p>When I try to read parameters from an URL posted back from Ogone (payment gateway), joining my JSF-session again (session still exists), the QueryString is not available through</p>
  
  <pre><code>final HttpServletRequest request = (HttpServletRequest)FacesContext
  .getCurrentInstance().getExternalContext().getRequest();
  
  String qs = request.getQueryString(); // null on WebSphere, filled on Tomcat
  </code></pre>
  
  <p>To be a bit more complete, the query string looks something like this:</p>
  
  <pre><code>http://100.100.100.100:9080/my_app_context/pages/screen7.jsf?orderID=4208013442596271&amp;currency=EUR&amp;amount=60&amp;PM=iDEAL&amp;ACCEPTANCE=0000000000&amp;STATUS=9&amp;CARDNO=11-XXXX-11&amp;ED=&amp;CN=K%C3%A9m+Birdy&amp;TRXDATE=08%2F06%2F12&amp;PAYID=15879916&amp;NCERROR=0&amp;BRAND=iDEAL&amp;COMPLUS=personID%3D01%26subscriptionID%3D02&amp;IP=100.100.100.100&amp;SHASIGN=9642468EE016BD49787B62EA7231124B3C24F9BBFC5B3B3B4D9E97D678979E57E5EED9B47D611441A6FCA2EB1D2DB87348C8111ACFF366A4E244106CCCFAFDA5
  </code></pre>
  
  <p>I'm thinking of some WebSphere webcontainer setting that might prevent the container from handling the external request properly. Or maybe there's some classloading issue here, but I haven't been able to track it down.</p>
  
  <p>The stack trace on WebSphere is like this:</p>
  
  <pre><code>12-08-07 08:02:26 ERROR - 
  java.lang.NullPointerException
  at ... own code trying to getQueryString()...
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:618)
  at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:459)
  at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:85)
  at org.apache.myfaces.custom.security.SecurityContextPropertyResolver.getValue(SecurityContextPropertyResolver.java:101)
  at org.apache.myfaces.el.ELParserHelper$MyPropertySuffix.evaluate(ELParserHelper.java:539)
  at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
  at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:386)
  at javax.faces.component.UIOutput.getValue(UIOutput.java:118)
  at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getValue(RendererUtils.java:267)
  at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:226)
  at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderOutput(HtmlTextRendererBase.java:69)
  at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:57)
  at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:799)
  at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:678)
  at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:546)
  at com.ibm._jsp._aanmeldScherm7._jspx_meth_h_outputText_1(_aanmeldScherm7.java:204)
  at com.ibm._jsp._aanmeldScherm7._jspx_meth_f_subview_0(_aanmeldScherm7.java:1870)
  at com.ibm._jsp._aanmeldScherm7._jspService(_aanmeldScherm7.java:85)
  at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:88)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
  at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1213)
  at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1154)
  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:118)
  at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:848)
  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:691)
  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:654)
  at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:526)
  at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122)
  at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:248)
  at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:648)
  at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:1042)
  at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:484)
  at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:99)
  at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:135)
  at org.apache.struts.taglib.tiles.InsertTag.doInclude(InsertTag.java:760)
  at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:892)
  at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:462)
  at com.ibm._jsp._defaultLayout2._jspx_meth_tiles_insert_2(_defaultLayout2.java:392)
  at com.ibm._jsp._defaultLayout2._jspx_meth_h_form_0(_defaultLayout2.java:597)
  at com.ibm._jsp._defaultLayout2._jspx_meth_f_view_0(_defaultLayout2.java:715)
  at com.ibm._jsp._defaultLayout2._jspService(_defaultLayout2.java:92)
  at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:88)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
  at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1213)
  at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1154)
  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:118)
  at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:848)
  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:691)
  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:654)
  at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:526)
  at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122)
  at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:248)
  at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:325)
  at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:426)
  at org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.dispatch(JspTilesViewHandlerImpl.java:236)
  at org.apache.myfaces.tomahawk.application.jsp.JspTilesViewHandlerImpl.renderView(JspTilesViewHandlerImpl.java:222)
  at org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:101)
  at org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:221)
  at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
  at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:146)
  at javax.faces.webapp.FacesServlet.service(FacesServlet.java:147)
  at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1213)
  at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1154)
  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145)
  at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:75)
  at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:213)
  at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
  at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:301)
  at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
  at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
  at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130)
  at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87)
  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:848)
  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:691)
  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:654)
  at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:526)
  at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90)
  at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:764)
  at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1478)
  at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:133)
  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:457)
  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515)
  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:300)
  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:271)
  at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
  at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
  at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
  at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
  at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
  at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136)
  at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196)
  at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:751)
  at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881)
  at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1560)
  </code></pre>
  
  <p>If anyone could point me in the right direction, please.</p>
  
  <p>WebSphere version is 6.1.0.43.</p>