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/09/25 12:37:12 UTC

Problems running grails applications on Geronimo 2.1

1.
There is problem with running Grails application on G 2.1 if application 
is deployed to root (not subdirectory) then URL mappings do not work 
correctly.
i.e. instead of /controler/index you have to write /controler/index.gsp
Grails deployed in ROOT works correctly on Jetty, Tomcat, Glassfish and 
Websphere 7 so mistake is clearly on G side.

2.
Second problem with running Grails applications on geronimo is that it 
is really difficult to make classloading work even with inverse 
classloading it still do not works. you have to make lists of 
<non-overridable-classes> which is really difficult. I was not able to 
make Grails applications which are using web services to work.

Currently i just give up on Geronimo and moved to Glassfish. Glassfish 3 
is way better than Glassfish v2, but it has its problems too. Advantage 
is larger user community and better documentation.

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

Re: Problems running grails applications on Geronimo 2.1

Posted by 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

Re: Problems running grails applications on Geronimo 2.1

Posted by Ivan <xh...@gmail.com>.
 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.

2011/10/16 Radim Kolar <hs...@sendmail.cz>

> Dne 14.10.2011 5:06, Ivan napsal(a):
>
> thank you for fixing this. i will try it because i have some serious
> stability problems after i moved to glassfish. I have also some classloading
> problems with grails applications in Geronimo 2.1, i will try WAS CE 3.0
> which is G 3.0 based to see if classloading is fixed by switching to osgi
> model.
>



-- 
Ivan

Re: Problems running grails applications on Geronimo 2.1

Posted by Radim Kolar <hs...@sendmail.cz>.
Dne 14.10.2011 5:06, Ivan napsal(a):

thank you for fixing this. i will try it because i have some serious 
stability problems after i moved to glassfish. I have also some 
classloading problems with grails applications in Geronimo 2.1, i will 
try WAS CE 3.0 which is G 3.0 based to see if classloading is fixed by 
switching to osgi model.

Re: Problems running grails applications on Geronimo 2.1

Posted by Ivan <xh...@gmail.com>.
Hi, I just committed some changes to code base, the problem is that, in the
internal Tomcat, seems that it uses an empty string to represent the root
context, and actually, I think that Tomcat did not clarify it clearly.
In the past Geronimo codes, we uses "/" for the root context, and "" for the
default context. The problems happens while some Tomcat codes construct the
requestURI in ApplicationContext to "//grails/path/test", and spring
framework fails to retrieve the target handler class.
Now, I removed the codes for building the default context in
TomcatContainer, and also use "" for the context path of default context
(also known as ROOT context), and it works for me.
Thanks.

2011/9/26 Ivan <xh...@gmail.com>

> Thanks, Radim, I will take a look at it asap !
>
>
> 2011/9/26 Radim Kolar <hs...@sendmail.cz>
>
>>  https://issues.apache.org/**jira/browse/GERONIMO-6171<https://issues.apache.org/jira/browse/GERONIMO-6171>
>>
>> included sample application source file + WAR linked to rapidshare
>>
>>
>
>
> --
> Ivan
>



-- 
Ivan

Re: Problems running grails applications on Geronimo 2.1

Posted by Ivan <xh...@gmail.com>.
Thanks, Radim, I will take a look at it asap !

2011/9/26 Radim Kolar <hs...@sendmail.cz>

>  https://issues.apache.org/**jira/browse/GERONIMO-6171<https://issues.apache.org/jira/browse/GERONIMO-6171>
>
> included sample application source file + WAR linked to rapidshare
>
>


-- 
Ivan

Re: Problems running grails applications on Geronimo 2.1

Posted by Radim Kolar <hs...@sendmail.cz>.
  https://issues.apache.org/jira/browse/GERONIMO-6171

included sample application source file + WAR linked to rapidshare


Re: Problems running grails applications on Geronimo 2.1

Posted by Radim Kolar <hs...@sendmail.cz>.
Dne 25.9.2011 16:31, Ivan napsal(a):
> We are sorry that you got problems for rails support in Geronimo, 
> while not sure I miss your emails in the past for the grail issues, if 
> you could provide a sample, that will be better for the community to 
> find what happens. And if there is really an issue in Geronimo, we 
> will do fix it in the coming 2.1.8 release.
I will upload sample grails application to JIRA. You need to generate 
war file yourself because it is kinda large (22 megs).

Re: Problems running grails applications on Geronimo 2.1

Posted by Ivan <xh...@gmail.com>.
We are sorry that you got problems for rails support in Geronimo, while not
sure I miss your emails in the past for the grail issues, if you could
provide a sample, that will be better for the community to find what
happens. And if there is really an issue in Geronimo, we will do fix it in
the coming 2.1.8 release.

2011/9/25 Radim Kolar <hs...@sendmail.cz>

> 1.
> There is problem with running Grails application on G 2.1 if application is
> deployed to root (not subdirectory) then URL mappings do not work correctly.
> i.e. instead of /controler/index you have to write /controler/index.gsp
> Grails deployed in ROOT works correctly on Jetty, Tomcat, Glassfish and
> Websphere 7 so mistake is clearly on G side.
>
> 2.
> Second problem with running Grails applications on geronimo is that it is
> really difficult to make classloading work even with inverse classloading it
> still do not works. you have to make lists of <non-overridable-classes>
> which is really difficult. I was not able to make Grails applications which
> are using web services to work.
>
> Currently i just give up on Geronimo and moved to Glassfish. Glassfish 3 is
> way better than Glassfish v2, but it has its problems too. Advantage is
> larger user community and better documentation.
>



-- 
Ivan