You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by Radim Kolar <hs...@sendmail.cz> on 2011/11/01 17:29:37 UTC

Re: Problems running grails applications on Geronimo 2.1

Dne 16.10.2011 9:47, Ivan napsal(a):
> I saw that you have mentioned classloading issue in your first email, 
> while If you could paste more detailed information, that would be 
> better. Usually, most classloading issues could be solved with correct 
> classloading loading configurations.
its grails 1.3.7 application with springws 1.5.something

Unexpected expection during whois query: java.lang.ClassCastException: 
org.apach
e.axiom.om.impl.dom.DocumentImpl cannot be cast to 
org.apache.axiom.om.impl.dom.
ElementImpljava.lang.ClassCastException: 
org.apache.axiom.om.impl.dom.DocumentIm
pl cannot be cast to org.apache.axiom.om.impl.dom.ElementImpl
         at 
org.apache.axis2.saaj.NodeImplEx.toSAAJNode2(NodeImplEx.java:265)
         at org.apache.axis2.saaj.NodeImplEx.toSAAJNode(NodeImplEx.java:178)
         at org.apache.axis2.saaj.NodeImplEx.toSAAJNode(NodeImplEx.java:163)
         at 
org.apache.axis2.saaj.SOAPElementImpl.getParentElement(SOAPElementImp
l.java:724)
         at 
org.apache.axis2.saaj.SOAPElementImpl.getParentNode(SOAPElementImpl.j
ava:779)
         at 
com.sun.xml.bind.v2.runtime.DomPostInitAction.run(DomPostInitAction.j
ava:33)
         at 
com.sun.xml.bind.v2.runtime.MarshallerImpl.prewrite(MarshallerImpl.ja
va:329)
         at 
com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:
291)
         at 
com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.jav
a:221)
         at 
org.springframework.oxm.jaxb.Jaxb2Marshaller.marshal(Jaxb2Marshaller.
java:496)
         at 
org.springframework.ws.support.MarshallingUtils.marshal(MarshallingUt
ils.java:81)
         at 
org.springframework.ws.client.core.WebServiceTemplate$2.doWithMessage
(WebServiceTemplate.java:360)
         at 
org.springframework.ws.client.core.WebServiceTemplate.doSendAndReceiv
e(WebServiceTemplate.java:535)
         at 
org.springframework.ws.client.core.WebServiceTemplate.sendAndReceive(
WebServiceTemplate.java:502)
         at 
org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndR
eceive(WebServiceTemplate.java:351)
         at 
org.springframework.ws.client.core.WebServiceTemplate.marshalSendAndR
eceive(WebServiceTemplate.java:341)
         at 
org.springframework.ws.client.core.WebServiceOperations$marshalSendAn
dReceive.call(Unknown Source)
         at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSi
teArray.java:40)
         at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCa
llSite.java:116)
         at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCa
llSite.java:128)
         at 
whois.WhoisController$_closure2.doCall(WhoisController.groovy:35)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at 
org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMet
hodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266)
         at 
org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(P
ogoMetaMethodSite.java:51)
         at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent
(CallSiteArray.java:44)
         at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(Abs
tractCallSite.java:141)
         at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(Abs
tractCallSite.java:149)
         at whois.WhoisController$_closure2.call(WhoisController.groovy)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at 
org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMet
hodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:266)
         at 
org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMeta
MethodSite.java:63)
         at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSi
teArray.java:40)
         at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCa
llSite.java:116)
         at 
org.codehaus.groovy.grails.web.plugins.support.WebMetaUtils$_createCo
mmandObjectBindingAction_closure2.doCall(WebMetaUtils.groovy:132)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
         at java.lang.reflect.Method.invoke(Unknown Source)
         at 
org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:
90)
         at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
         at 
groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)

         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:930)
         at 
groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1070)

         at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
         at groovy.lang.Closure.call(Closure.java:282)
         at groovy.lang.Closure.call(Closure.java:277)
         at 
org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelp
er.handleAction(SimpleGrailsControllerHelper.java:368)
         at 
org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelp
er.executeAction(SimpleGrailsControllerHelper.java:232)
         at 
org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelp
er.handleURI(SimpleGrailsControllerHelper.java:190)
         at 
org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelp
er.handleURI(SimpleGrailsControllerHelper.java:129)
         at 
org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsController.han
dleRequest(SimpleGrailsController.java:73)
         at 
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.ha
ndle(SimpleControllerHandlerAdapter.java:48)
         at 
org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet.doDisp
atch(GrailsDispatcherServlet.java:292)
         at 
org.springframework.web.servlet.DispatcherServlet.doService(Dispatche
rServlet.java:719)
         at 
org.springframework.web.servlet.FrameworkServlet.processRequest(Frame
workServlet.java:644)
         at 
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServ
let.java:560)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:290)
         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
         at javax.servlet.FilterChain$doFilter.call(Unknown Source)
         at 
grails.plugin.springcache.web.GrailsFragmentCachingFilter.doFilter(Gr
ailsFragmentCachingFilter.groovy:66)
         at 
net.sf.ehcache.constructs.web.filter.Filter.doFilter(Filter.java:86)
         at 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(D
elegatingFilterProxy.java:237)
         at 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(Delegat
ingFilterProxy.java:167)
         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
         at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerR
equestFilter.java:70)
         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
         at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerR
equestFilter.java:70)
         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
         at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerR
equestFilter.java:70)
         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
         at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDisp
atcher.java:646)
         at 
org.apache.catalina.core.ApplicationDispatcher.processRequest(Applica
tionDispatcher.java:436)
         at 
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationD
ispatcher.java:374)
         at 
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDis
patcher.java:302)
         at 
org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMapp
ingInfo(WebUtils.java:298)
         at 
org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMapp
ingInfo(WebUtils.java:264)
         at 
org.codehaus.groovy.grails.web.util.WebUtils.forwardRequestForUrlMapp
ingInfo(WebUtils.java:255)
         at 
org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter.doFil
terInternal(UrlMappingsFilter.java:183)
         at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerR
equestFilter.java:76)
         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
         at 
org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.obtainConten
t(GrailsPageFilter.java:245)
         at 
org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter.doFilter(Gra
ilsPageFilter.java:134)
         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
         at 
org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter.doF
ilterInternal(GrailsWebRequestFilter.java:69)
         at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerR
equestFilter.java:76)
         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
         at 
org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter.doFilte
rInternal(HiddenHttpMethodFilter.java:65)
         at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerR
equestFilter.java:76)
         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
         at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterIntern
al(CharacterEncodingFilter.java:88)
         at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerR
equestFilter.java:76)
         at 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(D
elegatingFilterProxy.java:237)
         at 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(Delegat
ingFilterProxy.java:167)
         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
         at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:233)
         at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:191)
         at 
org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSu
bjectValve.java:56)
         at 
org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.
invoke(GeronimoStandardContext.java:406)
         at 
org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(Gero
nimoBeforeAfterValve.java:47)
         at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:127)
         at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:102)
         at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
         at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
555)
         at 
org.apache.geronimo.tomcat.valve.ThreadCleanerValve.invoke(ThreadClea
nerValve.java:40)
         at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:298)
         at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:857)
         at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ss(Http11Protocol.java:588)
         at 
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:48
9)
         at java.lang.Thread.run(Unknown Source)

<non-overridable-classes>
<filter>net.sf.cglib</filter>
<filter>javax.transaction</filter>
<filter>org.apache.axis2</filter>
</non-overridable-classes>
<inverse-classloading/>

first 2 must be used to get grails application running, 3rd is my guess 
for fixing this bug but it didnt worked. Actually getting more complex 
web applications to run in Geronimo is difficult due its highly 
nonstandard classloading system. If you google internet a bit you will 
see complains that some people were never able to figure classloader 
tricks to get their application running.

I am going to try this app in WAS CE 3.0 which is G3 from around 2011-07

Re: Problems running grails applications on Geronimo 2.1

Posted by Radim Kolar <hs...@sendmail.cz>.
Dne 2.11.2011 21:19, Ivan napsal(a):
> OK, so could you attach the sample to the JIRA system? Or the one 
> attached last time could reproduce this.
> Thanks.
I just tested that app in geronimo 2.2.1 and it works, so saaj support 
is broken in 2.1. Please commit root context patch to 2.2 branch so i 
can download snapshot and move away from glassfish 3.3.1 which is really 
unstable and hangs often.

Also it would be nice make another release from 2.2 branch. It will show 
people that project is alive and it will get latest fixes. Actually 
while making release from 2.2. it would be nice to update included 
activemq, because it is currently most unstable G component.

Re: Problems running grails applications on Geronimo 2.1

Posted by Ivan <xh...@gmail.com>.
OK, so could you attach the sample to the JIRA system? Or the one attached
last time could reproduce this.
Thanks.

2011/11/3 Radim Kolar <hs...@sendmail.cz>

>
>   I partly agreed your opinions, the classloader is always a complex thing
>> If the web applications ship the conflict libraries with the server
>> runtime, there may be issues, and you could find almost all the application
>> servers provide some classloading options to change the classloader
>> behavior. Also, I am not sure why you say that the Geronimo classloading
>> system is 'highly nonstandard', it will be better to have some detailed
>> comments for it :-)
>>
> If you get this application - it runs everywhere with exception of
> geronimo - websphere 7, jetty, tomcat, glassfish 3, weblogic 10.3. While
> you can certainly tune classloading in every mentioned server, it is not
> needed for majority of wars. In geronimo you need it for almost everything
> which does not fall into hello world category. Non willingness to play with
> custom deployement descriptors is reason why tomcat has so high market
> share in J2EE world - people just put OpenEJB + Hibernate there and they
> can make it run faster then in full J2EE stacks.
>
>
>   a. Not sure whether it is required to add javax.transaction in the
>> filter option, usually, for those specification APIs, the ones from server
>> side should always be used, as they are referenced by many server
>> components. Anyway, if it makes your application work, that is fine.
>>
> thats exactly what that statement does. combined with inverse
> classloading, it will make to ignore included JTA jar in grails application.
>
>   b. From the stack trace,  the CCE is thrown for the axiom package, it
>> seems that spring-ws uses the saaj in its webservice processing, and by
>> default, the axis2-saaj implementation is used in Geronimo runtime, and
>> axis2-saaj is dependent on the axiom packages. I checked the spring-ws
>> 1.5.0 packages, and found that axiom-1.2.5 is used, which is the same
>> version with one from Geronimo 2.1 runtime. One possible solution is to
>> removed the ones from your application packages.
>>
> grails springws plugin does not come with axiom and no axiom jar is found
> in application jars. Springws plugin comes with this:
>
>     69 409 activation-1.1.1.jar
>  1 651 965 bcprov-jdk14-1.43.jar
>      6 461 com.russmiles.groovy.**webservices.client-1.0-
>
>     18 817 saaj-api-1.3.jar
>    278 145 saaj-impl-1.3.2.jar (com.sun.xml.messaging.saaj)
>    278 286 serializer-2.7.1.jar
>    773 156 spring-security-core-2.0.4.jar
>    776 014 spring-ws-1.5.8-all.jar
>     23 346 stax-api-1.0.2.jar
>    148 522 wsdl4j-1.6.1.jar
>    323 799 wss4j-1.5.8.jar
>  3 176 148 xalan-2.7.1.jar
>    143 145 XmlSchema-1.4.3.jar
>    447 633 xmlsec-1.4.3.jar
>
> i added axiom to list of filtered classes to make sure that version
> packaged with geronimo is used but i got same error
>
>
> <non-overridable-classes>
> <filter>net.sf.cglib</filter>
> <filter>javax.transaction</**filter>
> <filter>javax.xml.soap</**filter>
> <filter>org.apache.axiom</**filter>
> </non-overridable-classes>
> <inverse-classloading/>
>
>
>
>>  If the application codes will interact with the server codes use those
>> components, there may be still an issue there.
>>
> saaj support in geronimo might be wrong
>



-- 
Ivan

Re: Problems running grails applications on Geronimo 2.1

Posted by Radim Kolar <hs...@sendmail.cz>.
>   I partly agreed your opinions, the classloader is always a complex 
> thing If the web applications ship the conflict libraries with the 
> server runtime, there may be issues, and you could find almost all the 
> application servers provide some classloading options to change the 
> classloader behavior. Also, I am not sure why you say that the 
> Geronimo classloading system is 'highly nonstandard', it will be 
> better to have some detailed comments for it :-)
If you get this application - it runs everywhere with exception of 
geronimo - websphere 7, jetty, tomcat, glassfish 3, weblogic 10.3. While 
you can certainly tune classloading in every mentioned server, it is not 
needed for majority of wars. In geronimo you need it for almost 
everything which does not fall into hello world category. Non 
willingness to play with custom deployement descriptors is reason why 
tomcat has so high market share in J2EE world - people just put OpenEJB 
+ Hibernate there and they can make it run faster then in full J2EE stacks.

>   a. Not sure whether it is required to add javax.transaction in the 
> filter option, usually, for those specification APIs, the ones from 
> server side should always be used, as they are referenced by many 
> server components. Anyway, if it makes your application work, that is 
> fine.
thats exactly what that statement does. combined with inverse 
classloading, it will make to ignore included JTA jar in grails application.
>   b. From the stack trace,  the CCE is thrown for the axiom package, 
> it seems that spring-ws uses the saaj in its webservice processing, 
> and by default, the axis2-saaj implementation is used in Geronimo 
> runtime, and axis2-saaj is dependent on the axiom packages. I checked 
> the spring-ws 1.5.0 packages, and found that axiom-1.2.5 is used, 
> which is the same version with one from Geronimo 2.1 runtime. One 
> possible solution is to removed the ones from your application packages.
grails springws plugin does not come with axiom and no axiom jar is 
found in application jars. Springws plugin comes with this:

      69 409 activation-1.1.1.jar
   1 651 965 bcprov-jdk14-1.43.jar
       6 461 com.russmiles.groovy.webservices.client-1.0-

      18 817 saaj-api-1.3.jar
     278 145 saaj-impl-1.3.2.jar (com.sun.xml.messaging.saaj)
     278 286 serializer-2.7.1.jar
     773 156 spring-security-core-2.0.4.jar
     776 014 spring-ws-1.5.8-all.jar
      23 346 stax-api-1.0.2.jar
     148 522 wsdl4j-1.6.1.jar
     323 799 wss4j-1.5.8.jar
   3 176 148 xalan-2.7.1.jar
     143 145 XmlSchema-1.4.3.jar
     447 633 xmlsec-1.4.3.jar

i added axiom to list of filtered classes to make sure that version 
packaged with geronimo is used but i got same error

<non-overridable-classes>
<filter>net.sf.cglib</filter>
<filter>javax.transaction</filter>
<filter>javax.xml.soap</filter>
<filter>org.apache.axiom</filter>
</non-overridable-classes>
<inverse-classloading/>

>
>  If the application codes will interact with the server codes use 
> those components, there may be still an issue there.
saaj support in geronimo might be wrong

Re: Problems running grails applications on Geronimo 2.1

Posted by Ivan <xh...@gmail.com>.
2011/11/2 Radim Kolar <hs...@sendmail.cz>

> Dne 16.10.2011 9:47, Ivan napsal(a):
>
>  I saw that you have mentioned classloading issue in your first email,
>> while If you could paste more detailed information, that would be better.
>> Usually, most classloading issues could be solved with correct classloading
>> loading configurations.
>>
> its grails 1.3.7 application with springws 1.5.something
>
> Unexpected expection during whois query: java.lang.ClassCastException:
> org.apach
> e.axiom.om.impl.dom.**DocumentImpl cannot be cast to
> org.apache.axiom.om.impl.dom.
> ElementImpljava.lang.**ClassCastException: org.apache.axiom.om.impl.dom.**
> DocumentIm
> pl cannot be cast to org.apache.axiom.om.impl.dom.**ElementImpl
>        at org.apache.axis2.saaj.**NodeImplEx.toSAAJNode2(**
> NodeImplEx.java:265)
>        at org.apache.axis2.saaj.**NodeImplEx.toSAAJNode(**
> NodeImplEx.java:178)
>        at org.apache.axis2.saaj.**NodeImplEx.toSAAJNode(**
> NodeImplEx.java:163)
>        at org.apache.axis2.saaj.**SOAPElementImpl.**getParentElement(**
> SOAPElementImp
> l.java:724)
>        at org.apache.axis2.saaj.**SOAPElementImpl.getParentNode(**
> SOAPElementImpl.j
> ava:779)
>        at com.sun.xml.bind.v2.runtime.**DomPostInitAction.run(**
> DomPostInitAction.j
> ava:33)
>        at com.sun.xml.bind.v2.runtime.**MarshallerImpl.prewrite(**
> MarshallerImpl.ja
> va:329)
>        at com.sun.xml.bind.v2.runtime.**MarshallerImpl.write(**
> MarshallerImpl.java:
> 291)
>        at com.sun.xml.bind.v2.runtime.**MarshallerImpl.marshal(**
> MarshallerImpl.jav
> a:221)
>        at org.springframework.oxm.jaxb.**Jaxb2Marshaller.marshal(**
> Jaxb2Marshaller.
> java:496)
>        at org.springframework.ws.**support.MarshallingUtils.**
> marshal(MarshallingUt
> ils.java:81)
>        at org.springframework.ws.client.**core.WebServiceTemplate$2.**
> doWithMessage
> (WebServiceTemplate.java:360)
>        at org.springframework.ws.client.**core.WebServiceTemplate.**
> doSendAndReceiv
> e(WebServiceTemplate.java:535)
>        at org.springframework.ws.client.**core.WebServiceTemplate.**
> sendAndReceive(
> WebServiceTemplate.java:502)
>        at org.springframework.ws.client.**core.WebServiceTemplate.**
> marshalSendAndR
> eceive(WebServiceTemplate.**java:351)
>        at org.springframework.ws.client.**core.WebServiceTemplate.**
> marshalSendAndR
> eceive(WebServiceTemplate.**java:341)
>        at org.springframework.ws.client.**core.WebServiceOperations$**
> marshalSendAn
> dReceive.call(Unknown Source)
>        at org.codehaus.groovy.runtime.**callsite.CallSiteArray.**
> defaultCall(CallSi
> teArray.java:40)
>        at org.codehaus.groovy.runtime.**callsite.AbstractCallSite.**
> call(AbstractCa
> llSite.java:116)
>        at org.codehaus.groovy.runtime.**callsite.AbstractCallSite.**
> call(AbstractCa
> llSite.java:128)
>        at whois.WhoisController$_**closure2.doCall(**
> WhoisController.groovy:35)
>        at sun.reflect.**NativeMethodAccessorImpl.**invoke0(Native Method)
>        at sun.reflect.**NativeMethodAccessorImpl.**invoke(Unknown Source)
>        at sun.reflect.**DelegatingMethodAccessorImpl.**invoke(Unknown
> Source)
>        at java.lang.reflect.Method.**invoke(Unknown Source)
>        at org.codehaus.groovy.runtime.**callsite.PogoMetaMethodSite$**
> PogoCachedMet
> hodSiteNoUnwrapNoCoerce.**invoke(PogoMetaMethodSite.**java:266)
>        at org.codehaus.groovy.runtime.**callsite.PogoMetaMethodSite.**
> callCurrent(P
> ogoMetaMethodSite.java:51)
>        at org.codehaus.groovy.runtime.**callsite.CallSiteArray.**
> defaultCallCurrent
> (CallSiteArray.java:44)
>        at org.codehaus.groovy.runtime.**callsite.AbstractCallSite.**
> callCurrent(Abs
> tractCallSite.java:141)
>        at org.codehaus.groovy.runtime.**callsite.AbstractCallSite.**
> callCurrent(Abs
> tractCallSite.java:149)
>        at whois.WhoisController$_**closure2.call(WhoisController.**groovy)
>        at sun.reflect.**NativeMethodAccessorImpl.**invoke0(Native Method)
>        at sun.reflect.**NativeMethodAccessorImpl.**invoke(Unknown Source)
>        at sun.reflect.**DelegatingMethodAccessorImpl.**invoke(Unknown
> Source)
>        at java.lang.reflect.Method.**invoke(Unknown Source)
>        at org.codehaus.groovy.runtime.**callsite.PogoMetaMethodSite$**
> PogoCachedMet
> hodSiteNoUnwrapNoCoerce.**invoke(PogoMetaMethodSite.**java:266)
>        at org.codehaus.groovy.runtime.**callsite.PogoMetaMethodSite.**
> call(PogoMeta
> MethodSite.java:63)
>        at org.codehaus.groovy.runtime.**callsite.CallSiteArray.**
> defaultCall(CallSi
> teArray.java:40)
>        at org.codehaus.groovy.runtime.**callsite.AbstractCallSite.**
> call(AbstractCa
> llSite.java:116)
>        at org.codehaus.groovy.grails.**web.plugins.support.**
> WebMetaUtils$_createCo
> mmandObjectBindingAction_**closure2.doCall(WebMetaUtils.**groovy:132)
>        at sun.reflect.**NativeMethodAccessorImpl.**invoke0(Native Method)
>        at sun.reflect.**NativeMethodAccessorImpl.**invoke(Unknown Source)
>        at sun.reflect.**DelegatingMethodAccessorImpl.**invoke(Unknown
> Source)
>        at java.lang.reflect.Method.**invoke(Unknown Source)
>        at org.codehaus.groovy.**reflection.CachedMethod.**
> invoke(CachedMethod.java:
> 90)
>        at groovy.lang.MetaMethod.**doMethodInvoke(MetaMethod.**java:233)
>        at groovy.lang.MetaClassImpl.**invokeMethod(MetaClassImpl.**
> java:1058)
>        at groovy.lang.ExpandoMetaClass.**invokeMethod(ExpandoMetaClass.**
> java:1070)
>
>        at groovy.lang.MetaClassImpl.**invokeMethod(MetaClassImpl.**
> java:886)
>        at groovy.lang.MetaClassImpl.**invokeMethod(MetaClassImpl.**
> java:930)
>        at groovy.lang.ExpandoMetaClass.**invokeMethod(ExpandoMetaClass.**
> java:1070)
>
>        at groovy.lang.MetaClassImpl.**invokeMethod(MetaClassImpl.**
> java:886)
>        at groovy.lang.Closure.call(**Closure.java:282)
>        at groovy.lang.Closure.call(**Closure.java:277)
>        at org.codehaus.groovy.grails.**web.servlet.mvc.**
> SimpleGrailsControllerHelp
> er.handleAction(**SimpleGrailsControllerHelper.**java:368)
>        at org.codehaus.groovy.grails.**web.servlet.mvc.**
> SimpleGrailsControllerHelp
> er.executeAction(**SimpleGrailsControllerHelper.**java:232)
>        at org.codehaus.groovy.grails.**web.servlet.mvc.**
> SimpleGrailsControllerHelp
> er.handleURI(**SimpleGrailsControllerHelper.**java:190)
>        at org.codehaus.groovy.grails.**web.servlet.mvc.**
> SimpleGrailsControllerHelp
> er.handleURI(**SimpleGrailsControllerHelper.**java:129)
>        at org.codehaus.groovy.grails.**web.servlet.mvc.**
> SimpleGrailsController.han
> dleRequest(**SimpleGrailsController.java:**73)
>        at org.springframework.web.**servlet.mvc.**
> SimpleControllerHandlerAdapter**.ha
> ndle(**SimpleControllerHandlerAdapter**.java:48)
>        at org.codehaus.groovy.grails.**web.servlet.**
> GrailsDispatcherServlet.doDisp
> atch(GrailsDispatcherServlet.**java:292)
>        at org.springframework.web.**servlet.DispatcherServlet.**
> doService(Dispatche
> rServlet.java:719)
>        at org.springframework.web.**servlet.FrameworkServlet.**
> processRequest(Frame
> workServlet.java:644)
>        at org.springframework.web.**servlet.FrameworkServlet.**
> doPost(FrameworkServ
> let.java:560)
>        at javax.servlet.http.**HttpServlet.service(**HttpServlet.java:713)
>        at javax.servlet.http.**HttpServlet.service(**HttpServlet.java:806)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> internalDoFilter(Appl
> icationFilterChain.java:290)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> doFilter(ApplicationF
> ilterChain.java:206)
>        at javax.servlet.FilterChain$**doFilter.call(Unknown Source)
>        at grails.plugin.springcache.web.**GrailsFragmentCachingFilter.**
> doFilter(Gr
> ailsFragmentCachingFilter.**groovy:66)
>        at net.sf.ehcache.constructs.web.**filter.Filter.doFilter(Filter.**
> java:86)
>        at org.springframework.web.**filter.DelegatingFilterProxy.**
> invokeDelegate(D
> elegatingFilterProxy.java:237)
>        at org.springframework.web.**filter.DelegatingFilterProxy.**
> doFilter(Delegat
> ingFilterProxy.java:167)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> internalDoFilter(Appl
> icationFilterChain.java:235)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> doFilter(ApplicationF
> ilterChain.java:206)
>        at org.springframework.web.**filter.OncePerRequestFilter.**
> doFilter(OncePerR
> equestFilter.java:70)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> internalDoFilter(Appl
> icationFilterChain.java:235)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> doFilter(ApplicationF
> ilterChain.java:206)
>        at org.springframework.web.**filter.OncePerRequestFilter.**
> doFilter(OncePerR
> equestFilter.java:70)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> internalDoFilter(Appl
> icationFilterChain.java:235)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> doFilter(ApplicationF
> ilterChain.java:206)
>        at org.springframework.web.**filter.OncePerRequestFilter.**
> doFilter(OncePerR
> equestFilter.java:70)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> internalDoFilter(Appl
> icationFilterChain.java:235)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> doFilter(ApplicationF
> ilterChain.java:206)
>        at org.apache.catalina.core.**ApplicationDispatcher.invoke(**
> ApplicationDisp
> atcher.java:646)
>        at org.apache.catalina.core.**ApplicationDispatcher.**
> processRequest(Applica
> tionDispatcher.java:436)
>        at org.apache.catalina.core.**ApplicationDispatcher.**
> doForward(ApplicationD
> ispatcher.java:374)
>        at org.apache.catalina.core.**ApplicationDispatcher.forward(**
> ApplicationDis
> patcher.java:302)
>        at org.codehaus.groovy.grails.**web.util.WebUtils.**
> forwardRequestForUrlMapp
> ingInfo(WebUtils.java:298)
>        at org.codehaus.groovy.grails.**web.util.WebUtils.**
> forwardRequestForUrlMapp
> ingInfo(WebUtils.java:264)
>        at org.codehaus.groovy.grails.**web.util.WebUtils.**
> forwardRequestForUrlMapp
> ingInfo(WebUtils.java:255)
>        at org.codehaus.groovy.grails.**web.mapping.filter.**
> UrlMappingsFilter.doFil
> terInternal(UrlMappingsFilter.**java:183)
>        at org.springframework.web.**filter.OncePerRequestFilter.**
> doFilter(OncePerR
> equestFilter.java:76)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> internalDoFilter(Appl
> icationFilterChain.java:235)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> doFilter(ApplicationF
> ilterChain.java:206)
>        at org.codehaus.groovy.grails.**web.sitemesh.GrailsPageFilter.**
> obtainConten
> t(GrailsPageFilter.java:245)
>        at org.codehaus.groovy.grails.**web.sitemesh.GrailsPageFilter.**
> doFilter(Gra
> ilsPageFilter.java:134)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> internalDoFilter(Appl
> icationFilterChain.java:235)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> doFilter(ApplicationF
> ilterChain.java:206)
>        at org.codehaus.groovy.grails.**web.servlet.mvc.**
> GrailsWebRequestFilter.doF
> ilterInternal(**GrailsWebRequestFilter.java:**69)
>        at org.springframework.web.**filter.OncePerRequestFilter.**
> doFilter(OncePerR
> equestFilter.java:76)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> internalDoFilter(Appl
> icationFilterChain.java:235)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> doFilter(ApplicationF
> ilterChain.java:206)
>        at org.codehaus.groovy.grails.**web.filters.**
> HiddenHttpMethodFilter.doFilte
> rInternal(**HiddenHttpMethodFilter.java:**65)
>        at org.springframework.web.**filter.OncePerRequestFilter.**
> doFilter(OncePerR
> equestFilter.java:76)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> internalDoFilter(Appl
> icationFilterChain.java:235)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> doFilter(ApplicationF
> ilterChain.java:206)
>        at org.springframework.web.**filter.**CharacterEncodingFilter.**
> doFilterIntern
> al(CharacterEncodingFilter.**java:88)
>        at org.springframework.web.**filter.OncePerRequestFilter.**
> doFilter(OncePerR
> equestFilter.java:76)
>        at org.springframework.web.**filter.DelegatingFilterProxy.**
> invokeDelegate(D
> elegatingFilterProxy.java:237)
>        at org.springframework.web.**filter.DelegatingFilterProxy.**
> doFilter(Delegat
> ingFilterProxy.java:167)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> internalDoFilter(Appl
> icationFilterChain.java:235)
>        at org.apache.catalina.core.**ApplicationFilterChain.**
> doFilter(ApplicationF
> ilterChain.java:206)
>        at org.apache.catalina.core.**StandardWrapperValve.invoke(**
> StandardWrapperV
> alve.java:233)
>        at org.apache.catalina.core.**StandardContextValve.invoke(**
> StandardContextV
> alve.java:191)
>        at org.apache.geronimo.tomcat.**valve.DefaultSubjectValve.**
> invoke(DefaultSu
> bjectValve.java:56)
>        at org.apache.geronimo.tomcat.**GeronimoStandardContext$**
> SystemMethodValve.
> invoke(**GeronimoStandardContext.java:**406)
>        at org.apache.geronimo.tomcat.**valve.**GeronimoBeforeAfterValve.**
> invoke(Gero
> nimoBeforeAfterValve.java:47)
>        at org.apache.catalina.core.**StandardHostValve.invoke(**
> StandardHostValve.j
> ava:127)
>        at org.apache.catalina.valves.**ErrorReportValve.invoke(**
> ErrorReportValve.j
> ava:102)
>        at org.apache.catalina.core.**StandardEngineValve.invoke(**
> StandardEngineVal
> ve.java:109)
>        at org.apache.catalina.valves.**AccessLogValve.invoke(**
> AccessLogValve.java:
> 555)
>        at org.apache.geronimo.tomcat.**valve.ThreadCleanerValve.**
> invoke(ThreadClea
> nerValve.java:40)
>        at org.apache.catalina.connector.**CoyoteAdapter.service(**
> CoyoteAdapter.jav
> a:298)
>        at org.apache.coyote.http11.**Http11Processor.process(**
> Http11Processor.java
> :857)
>        at org.apache.coyote.http11.**Http11Protocol$**
> Http11ConnectionHandler.proce
> ss(Http11Protocol.java:588)
>        at org.apache.tomcat.util.net.**JIoEndpoint$Worker.run(**
> JIoEndpoint.java:48
> 9)
>        at java.lang.Thread.run(Unknown Source)
>
> <non-overridable-classes>
> <filter>net.sf.cglib</filter>
> <filter>javax.transaction</**filter>
> <filter>org.apache.axis2</**filter>
> </non-overridable-classes>
> <inverse-classloading/>
>
> first 2 must be used to get grails application running, 3rd is my guess
> for fixing this bug but it didnt worked. Actually getting more complex web
> applications to run in Geronimo is difficult due its highly nonstandard
> classloading system. If you google internet a bit you will see complains
> that some people were never able to figure classloader tricks to get their
> application running.
>
> I am going to try this app in WAS CE 3.0 which is G3 from around 2011-07
>

  I partly agreed your opinions, the classloader is always a complex thing
If the web applications ship the conflict libraries with the server
runtime, there may be issues, and you could find almost all the application
servers provide some classloading options to change the classloader
behavior. Also, I am not sure why you say that the Geronimo classloading
system is 'highly nonstandard', it will be better to have some detailed
comments for it :-)

  OK, for the grails application, I did not try it locally, and here is my
thoughts, hope it is helpful.
  a. Not sure whether it is required to add javax.transaction in the filter
option, usually, for those specification APIs, the ones from server side
should always be used, as they are referenced by many server components.
Anyway, if it makes your application work, that is fine.
  b. From the stack trace,  the CCE is thrown for the axiom package, it
seems that spring-ws uses the saaj in its webservice processing, and by
default, the axis2-saaj implementation is used in Geronimo runtime, and
axis2-saaj is dependent on the axiom packages. I checked the spring-ws
1.5.0 packages, and found that axiom-1.2.5 is used, which is the same
version with one from Geronimo 2.1 runtime. One possible solution is to
removed the ones from your application packages.

  Also, a bit comments for the use of filter options, with it, it could
make your application codes always use the shipped components, and this is
only limited to the application itself, the change won't affect the server
runtime, they will still use the ones in the server build. If the
application codes will interact with the server codes use those components,
there may be still an issue there.
  Thanks.


-- 
Ivan