Led & Sustained by

G2one Logo

Developed with

Intellij

Powered by

Spring

Deploying to WebSphere 5.x Journal

Deploying a grails application to WebSphere 5.x is not trivial. Some have reported success, but it is not my case yet

This is on :

  • grails-1.0.1,
  • Sun jdk 1.4.2 on Mac OS X 10.5.2 for running "grails war",
  • WebSphere running on Linux CentOS 4.5
  • IBM WebSphere Application Server, 5.1.1.3

    Build Number: cf30503.01

    Build Date: 01/17/2005

Here is a journal of what I went through, hoping it will help others and maybe help me solve my remaining problems to a successful deployment on websphere 5.1.

I intend to provide more deailled patches and files for workarounds I made. For now, I mostly describe what I did.

  • WebSphere error at deployment with web.xml generated by "grails -Dservlet.version=2.3 war"
    • Caused by addition of a xmlns attribute to web-app element in web.xml, even if template has not specified such an attribute
    • Maybe also caused by absence of DOCTYPE in web.xml
    • Possibly related to GRAILS-1795
    • Sequence for producing web.xml descriptor :
      1. web.xml.tmp is first created from ${GRAILS_HOME}/src/war/WEB-INF/web2.3.template.xml into ~/.grails-${grailsVesion}/projects/${baseName} : OK
      2. web.xml.tmp is processed to replace @grails.project.key@ with ${baseName} : OK
      3. web.xml.tmp is processed by pluginManager.doWebDescriptor() to generate staging/WEB-INF/web.xml : NOT OK
      • This last step is where the DOCTYPE specification is lost and where a xmlns attribute is added to web-app element
    • Solved by :
      • specifiying a custom web.xml in ${basedir}/grails-app/conf/Config.groovy (grails.config.base.webXml) for the application : use the web.xml.tmp generated at first by "grails -Dservlet.version=2.3 war"
      • Customizing Package.groovy by creating a local copy into ${baseDir}/scripts : copy the custom web.xml into staging and skip web.xml generation via pluginManager.doWebDescriptor()
      • Customizing War.groovy by creating a local copy into ${baseDir}/scripts : load local copy of Package.groovy ('includeTargets' for Package.groovy must be before the one for Clean.groovy)
      • Choose local War.groovy script when running "grails -Dservlet.version=2.3 war"
        war building example with a local copy of War.groovy
        $ grails -Dgrails.env=devmarcpa -Dservlet.version=2.3 war
        
        Welcome to Grails 1.0.1 - http://grails.org/
        Licensed under Apache Standard License 2.0
        Grails home is set to: /usr/local/grails-1.0.1		
        		
        Base Directory: /Users/marcpa/Code/grails-learning/comics_catalog_srvlt2.3
        Environment set to devmarcpa
        log4j:WARN No appenders could be found for logger (org.springframework.core.io.support.PathMatchingResourcePatternResolver).
        log4j:WARN Please initialize the log4j system properly.
        Note: No plugin scripts found
        Multiple options please select:
        [1] /Users/marcpa/Code/grails-learning/comics_catalog_srvlt2.3/scripts/War.groovy 
        [2] /usr/local/grails-1.0.1/scripts/War.groovy 
        Enter #  (1, 2)
        1
        Running script /Users/marcpa/Code/grails-learning/comics_catalog_srvlt2.3/scripts/War.groovy
        
    • Others have solved by creating Package23.groovy and War23.groovy scripts straight in the grails installation : http://markmail.org/message/exu6vcqiqcwznb6x
  • Trying to use PARENT_LAST for Classloader mode leads to "The chosen LogFactory implementation does not extend LogFactory"
    • See GRAILS-515 and http://grails.org/FAQ#FAQ-Q%3ADeployingonWebsphere
    • Solve by using an "application-associated shared library" definition in websphere for commons-logging:
      • in local copy of War.groovy, exclude(name:"commons-logging-1.1.jar" in target war
      • create a modified commons-logging.jar :

        $ cd $HOME

        $ [ ! -d tmp ] && mkdir tmp

        $ cd tmp

        $ cp $GRAILS_HOME/lib/commons-logging-1.1.jar commons-logging.jar

        1. mkdir -p META-INF/services

          $ echo "org.apache.commons.logging.impl.LogFactoryImpl" > META-INF/services/org.apache.commons.logging.LogFactory

          $ jar uvf commons-logging.jar META-INF/services/org.apache.commons.logging.LogFactory
      • copy the modified jar onto the machine running your websphere into a location that will be accessible at run-time by the websphere process
      • define a shared library in the admin console (pages 21 to 23 in the pdf "Integrating Jakarta Commons Logging (JCL) with IBM WebSphere Application Server" made by IBM, http://ww-1.ibm.com/support/docview.wss?uid=swg27004610)
  • ServletException when org.springframework.web.context.ContextLoaderServlet is used as the "context" servlet in web.xml.
    • Same exception as GRAILS-2035, but different cause
    • Solved by applying patch described in GRAILS-1143
      groovy.lang.MissingPropertyException: No such property: getMetaClass

      [4/2/08 13:07:07:465 EDT] 55fc2722 ServletInstan E SRVE0100E: Did not realize init() exception thrown by servlet grails: javax.servlet.ServletException: groovy.lang.MissingPropertyException: No such property: getMetaClass for class: groovy.lang.MetaClassImpl

      at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doInit(StrictServletInstance.java:99)

      at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._init(StrictLifecycleServlet.java:147)

      at com.ibm.ws.webcontainer.servlet.PreInitializedServletState.init(StrictLifecycleServlet.java:270)

      at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.init(StrictLifecycleServlet.java:113)

      at com.ibm.ws.webcontainer.servlet.ServletInstance.init(ServletInstance.java:189)

      at javax.servlet.GenericServlet.init(GenericServlet.java:258)

      at com.ibm.ws.webcontainer.webapp.WebAppServletManager.addServlet(WebAppServletManager.java:876)

      at com.ibm.ws.webcontainer.webapp.WebAppServletManager.loadServlet(WebAppServletManager.java:224)

      at com.ibm.ws.webcontainer.webapp.WebAppServletManager.loadAutoLoadServlets(WebAppServletManager.java:542)

      at com.ibm.ws.webcontainer.webapp.WebApp.loadServletManager(WebApp.java:1305)

      at com.ibm.ws.webcontainer.webapp.WebApp.init(WebApp.java:283)

      at com.ibm.ws.webcontainer.srt.WebGroup.loadWebApp(WebGroup.java:403)

      at com.ibm.ws.webcontainer.srt.WebGroup.init(WebGroup.java:212)

      at com.ibm.ws.webcontainer.WebContainer.addWebApplication(WebContainer.java:1025)

      at com.ibm.ws.runtime.component.WebContainerImpl.install(WebContainerImpl.java:136)

      at com.ibm.ws.runtime.component.WebContainerImpl.start(WebContainerImpl.java:356)

      at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:507)

      at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:808)

      at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:354)

      at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:578)

      at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:301)

      at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:578)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))

      at java.lang.reflect.Method.invoke(Method.java(Compiled Code))

      at com.tivoli.jmx.modelmbean.MMBInvoker.invoke(MMBInvoker.java:46)

      at com.tivoli.jmx.modelmbean.MMBInvoker.invokeOperation(MMBInvoker.java:115)

      at com.tivoli.jmx.modelmbean.DynamicModelMBeanSupport.invoke(DynamicModelMBeanSupport.java:409)

      at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:323)

      at com.tivoli.jmx.GenericMBeanSupport.invoke(GenericMBeanSupport.java:178)

      at com.tivoli.jmx.MBeanAccess.invoke(MBeanAccess.java:113)

      at com.tivoli.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:290)

      at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:659)

      at com.ibm.ws.console.core.mbean.MBeanHelper.invoke(MBeanHelper.java:141)

      at com.ibm.ws.console.appdeployment.ApplicationDeploymentCollectionAction.perform(ApplicationDeploymentCollectionAction.java:315)

      at org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1791)

      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1586)

      at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

      at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)

      at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)

      at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)

      at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)

      at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)

      at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)

      at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)

      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1049)

      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:600)

      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:201)

      at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:125)

      at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:286)

      at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)

      at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:116)

      at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186)

      at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)

      at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)

      at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:624)

      at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:448)

      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))

      ---- Begin backtrace for Nested Throwables

      org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingPropertyException: No such property: getMetaClass for class: groovy.lang.MetaClassImpl

      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java(Compiled Code))

      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java(Compiled Code))

      at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:250)

      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java(Compiled Code))

      at groovy.lang.Closure.call(Closure.java:292)

      at org.codehaus.groovy.grails.plugins.DefaultGrailsPlugin.doWithDynamicMethods(DefaultGrailsPlugin.java:702)

      at org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager.doDynamicMethods(DefaultGrailsPluginManager.java:696)

      at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:281)

      at org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator.configure(GrailsRuntimeConfigurator.java:242)

      at org.codehaus.groovy.grails.web.context.GrailsConfigUtils.configureWebApplicationContext(GrailsConfigUtils.java:106)

      at org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.createWebApplicationContext(GrailsDispatcherServlet.java:115)

      at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:266)

      at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:236)

      at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:126)

      at javax.servlet.GenericServlet.init(GenericServlet.java:258)

      at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doInit(StrictServletInstance.java:82)

      at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._init(StrictLifecycleServlet.java:147)

      at com.ibm.ws.webcontainer.servlet.PreInitializedServletState.init(StrictLifecycleServlet.java:270)

      at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.init(StrictLifecycleServlet.java:113)

      at com.ibm.ws.webcontainer.servlet.ServletInstance.init(ServletInstance.java:189)

      at javax.servlet.GenericServlet.init(GenericServlet.java:258)

      at com.ibm.ws.webcontainer.webapp.WebAppServletManager.addServlet(WebAppServletManager.java:876)

      at com.ibm.ws.webcontainer.webapp.WebAppServletManager.loadServlet(WebAppServletManager.java:224)

      at com.ibm.ws.webcontainer.webapp.WebAppServletManager.loadAutoLoadServlets(WebAppServletManager.java:542)

      at com.ibm.ws.webcontainer.webapp.WebApp.loadServletManager(WebApp.java:1305)

      at com.ibm.ws.webcontainer.webapp.WebApp.init(WebApp.java:283)

      at com.ibm.ws.webcontainer.srt.WebGroup.loadWebApp(WebGroup.java:403)

      at com.ibm.ws.webcontainer.srt.WebGroup.init(WebGroup.java:212)

      at com.ibm.ws.webcontainer.WebContainer.addWebApplication(WebContainer.java:1025)

      at com.ibm.ws.runtime.component.WebContainerImpl.install(WebContainerImpl.java:136)

      at com.ibm.ws.runtime.component.WebContainerImpl.start(WebContainerImpl.java:356)

      at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:507)

      at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:808)

      at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:354)

      at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:578)

      at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:301)

      at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:578)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))

      at java.lang.reflect.Method.invoke(Method.java(Compiled Code))

      at com.tivoli.jmx.modelmbean.MMBInvoker.invoke(MMBInvoker.java:46)

      at com.tivoli.jmx.modelmbean.MMBInvoker.invokeOperation(MMBInvoker.java:115)

      at com.tivoli.jmx.modelmbean.DynamicModelMBeanSupport.invoke(DynamicModelMBeanSupport.java:409)

      at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:323)

      at com.tivoli.jmx.GenericMBeanSupport.invoke(GenericMBeanSupport.java:178)

      at com.tivoli.jmx.MBeanAccess.invoke(MBeanAccess.java:113)

      at com.tivoli.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:290)

      at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:659)

      at com.ibm.ws.console.core.mbean.MBeanHelper.invoke(MBeanHelper.java:141)

      at com.ibm.ws.console.appdeployment.ApplicationDeploymentCollectionAction.perform(ApplicationDeploymentCollectionAction.java:315)

      at org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1791)

      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1586)

      at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

      at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)

      at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)

      at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)

      at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)

      at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)

      at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)

      at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)

      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1049)

      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:600)

      at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:201)

      at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:125)

      at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:286)

      at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)

      at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:116)

      at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186)

      at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)

      at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)

      at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:624)

      at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:448)

      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))

      Caused by: groovy.lang.MissingPropertyException: No such property: getMetaClass for class: groovy.lang.MetaClassImpl

      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:49)

      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setProperty(ScriptBytecodeAdapter.java:505)

      at org.codehaus.groovy.grails.plugins.CoreGrailsPlugin$_closure2.doCall(CoreGrailsPlugin.groovy:68)

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))

      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java(Compiled Code))

      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled Code))

      at java.lang.reflect.Method.invoke(Method.java(Compiled Code))

      ... 77 more

  • Servlet Error 500 : No thread-bound request found on visit to index.gsp of deployed application
    • The current request object is not available in org.springframework.web.context.request.RequestContextHolder
    • Maybe related to GRAILS-2188 ?
    • Solved by using alternate method to getting the current request into current thread (from javadoc of org.springframework.web.filter)
      Addition to web.xml to use spring's RequestContextFilter
        <!-- use alternate method to provide current request to current thread in Spring -->
        <!-- @see org.springframework.web.filter -->
        <filter>
          <filter-name>requestContextFilter</filter-name>
          <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
        </filter>
      
        <filter-mapping>
          <filter-name>requestContextFilter</filter-name>
          <url-pattern>/*</url-pattern>
        </filter-mapping>
      
"IllegalStateExecption, No thread-bound request found"

[4/2/08 14:20:08:503 EDT] 59232722 WebGroup E SRVE0026E: Servlet Error-[No thread-bound request found: Are you referring to request attributes outside of an actual web request? If you are actually operating within a web request and still receive this message,your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.]: java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request? If you are actually operating within a web request and still receive this message,your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.

at org.springframework.web.context.request.RequestContextHolder.currentRequestAttributes(RequestContextHolder.java:102)

at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.createResponseWriter(GroovyPagesServlet.java:205)

at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.renderPageWithEngine(GroovyPagesServlet.java:146)

at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.doPage(GroovyPagesServlet.java:131)

at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.doGet(GroovyPagesServlet.java:95)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))

at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)

at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)

at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)

at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)

at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)

at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)

at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:76)

at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.parsePage(GrailsPageFilter.java:119)

at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter(GrailsPageFilter.java:82)

at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)

at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71)

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1040)

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java(Compiled Code))

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:201)

at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:125)

at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:286)

at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)

at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)

at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)

at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)

at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:624)

at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:448)

at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))

  • Servlet Error, ClassCastException, when visiting index.gsp:

This one is unresolved ! I need help...

ClassCastException in createResponseWriter on index.gsp

[4/1/08 9:25:22:008 EDT] 44d36722 WebGroup E SRVE0026E: Servlet Error-org.springframework.web.context.request.ServletRequestAttributes: java.lang.ClassCastException: org.springframework.web.context.request.ServletRequestAttributes

at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.createResponseWriter(GroovyPagesServlet.java:205)

at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.renderPageWithEngine(GroovyPagesServlet.java:146)

at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.doPage(GroovyPagesServlet.java:131)

at org.codehaus.groovy.grails.web.pages.GroovyPagesServlet.doGet(GroovyPagesServlet.java:95)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)

at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)

at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)

at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)

at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)

at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)

at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:76)

at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:63)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)

at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71)

at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.parsePage(GrailsPageFilter.java:119)

at org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter(GrailsPageFilter.java:82)

at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:183)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:138)

at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71)

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1040)

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:600)

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:201)

at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:125)

at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:286)

at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)

at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:182)

at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)

at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)

at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:624)

at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:448)

at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))

</