geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ivan <xhh...@gmail.com>
Subject Re: Problems running grails applications on Geronimo 2.1
Date Wed, 02 Nov 2011 01:40:27 GMT
2011/11/2 Radim Kolar <hsn@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

Mime
View raw message