Last updated by 5 years ago

Page: Deploying to WebSphere 5.x Journal, Version:0

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"
{panel:title=war building example with a local copy of War.groovy} {noformat} $ 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 {noformat} {panel}

    • 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 :
{panel:unix sh/bash commands to create a modified jar to be used as a shared library in websphere 5.X} $ 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 {panel}
      • 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
{panel:title=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 {panel}
  • 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)
{panel:title=Addition to web.xml to use spring's RequestContextFilter} {noformat} <!-- 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> {noformat} {panel}

{panel:title="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)) {panel}

  • Servlet Error, ClassCastException, when visiting index.gsp:
This one is unresolved ! I need help…

{panel:title=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)) {panel}