[ 
https://issues.apache.org/jira/browse/GERONIMO-3265?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12509711
 ] 

Gianny Damour commented on GERONIMO-3265:
-----------------------------------------

I confirm that the cxf config pulls 2.0 Spring dependencies; also, Spring is 
not included for WADI as per Donald's comment.

I have been able to run a Web-app depending on Spring dependencies having a 
version greater than 2.0 by:
* reversing classloading; and
* hidding NamespaceHandler implementation classes defined by cxf: Spring simply 
logs a debug message when a declared NamespaceHandler implementation class 
cannot be loaded.

So, by adding this to your web-app geronimo DD, you can run your web-app:

        <hidden-classes>
          <filter>org.apache.cxf</filter> <!-- -This can also be the exhaustive 
list of NamespaceHandler implementations declared by CXF ->
        </hidden-classes>

        <inverse-classloading/>

> Spring stale version in 2.0-M6-rc1
> ----------------------------------
>
>                 Key: GERONIMO-3265
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-3265
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>    Affects Versions: 2.0-M6
>         Environment: Windows XP SP2, Sun JSDK 1.5.07, Geronimo (2.0-M6-rc1) 
> obtained from:
> http://people.apache.org/~hogstrom/2.0-M6-rc1/geronimo-tomcat6-jee5-2.0-M6-rc1-bin.zip
>  (2.0-M6-rc1)
>            Reporter: Alexei Kozich
>
> 1. This Geronimo build includes spring-beans.jar, spring-context.jar and 
> spring-core.jar of version 2.0.
> So as far as we know, version 2.0 does not fully support integration with JPA 
> implementations.
> 2. We developed an enterprise application (ear) which utilizes Spring 2.0.2 
> and OpenJPA.
> OpenJPA comes with Geronimo.
> Deployment and start of this application fails, because of different versions 
> of Spring (our application expects spring-beans.jar, spring-context.jar and 
> spring-core.jar to be at least of version 2.0.2 but Geronimo contains libs of 
> version 2.0 (the lack of some methods in version 2.0 is the problem here).
> 3. If we try to use inverse-classloading or hidden classes 
> (org.springframework) in geronimo-web.xml and include all necesary libs in 
> WEB-INF/lib following Exception is thrown during deployment and start of the 
> application (see below).
> 4. We found temporary workaround: to replace  spring-beans.jar, 
> spring-context.jar and spring-core.jar of version 2.0 with jars of version 
> 2.0.2 in Geronimo repository without using of inverse-classloading and hidden 
> classes and everything looks fine.
> 5. So as far as I understand this out-of-the-box Geronimo build could not be 
> used as Server for Spring-OpenJPA appications. At least  Spring libs upgrade 
> could solve this problem.
> 6. Another problem is following Exception when using hidden classes or 
> inverse-classloading to load application jars first.
> ERROR [ContextLoader] Context initialization failed
> org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected 
> exception parsing XML document from ServletContext resource 
> [/WEB-INF/springAppContext.xml]; nested exception is 
> java.lang.IllegalArgumentException: Class 
> [org.apache.cxf.clustering.spring.NamespaceHandler] does not implement the 
> NamespaceHandler interface
> Caused by: 
> java.lang.IllegalArgumentException: Class 
> [org.apache.cxf.clustering.spring.NamespaceHandler] does not implement the 
> NamespaceHandler interface
>       at 
> org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.initHandlerMappings(DefaultNamespaceHandlerResolver.java:119)
>       at 
> org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.<init>(DefaultNamespaceHandlerResolver.java:96)
>       at 
> org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.<init>(DefaultNamespaceHandlerResolver.java:82)
>       at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.createDefaultNamespaceHandlerResolver(XmlBeanDefinitionReader.java:526)
>       at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.createReaderContext(XmlBeanDefinitionReader.java:515)
>       at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:495)
>       at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
>       at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:340)
>       at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:317)
>       at 
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:125)
>       at 
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:141)
>       at 
> org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:123)
>       at 
> org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:91)
>       at 
> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:94)
>       at 
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:292)
>       at 
> org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:156)
>       at 
> org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
>       at 
> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:184)
>       at 
> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
>       at 
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3823)
>       at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4324)
>       at 
> org.apache.geronimo.tomcat.GeronimoStandardContext.access$201(GeronimoStandardContext.java:62)
>       at 
> org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:350)
>       at 
> org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
>       at 
> org.apache.geronimo.tomcat.GeronimoStandardContext.start(GeronimoStandardContext.java:194)
>       at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
>       at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
>       at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
>       at 
> org.apache.geronimo.tomcat.TomcatContainer.addContext(TomcatContainer.java:333)
>       at 
> org.apache.geronimo.tomcat.TomcatContainer$$FastClassByCGLIB$$9370b073.invoke(<generated>)
>       at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>       at 
> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:127)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:828)
>       at 
> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
>       at 
> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
>       at 
> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
>       at 
> org.apache.geronimo.tomcat.TomcatContainer$$EnhancerByCGLIB$$9425c889.addContext(<generated>)
>       at 
> org.apache.geronimo.tomcat.TomcatWebAppContext.doStart(TomcatWebAppContext.java:517)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:994)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:268)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.start(GBeanInstance.java:537)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanDependency.attemptFullStart(GBeanDependency.java:111)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanDependency.addTarget(GBeanDependency.java:146)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanDependency$1.running(GBeanDependency.java:120)
>       at 
> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.fireRunningEvent(BasicLifecycleMonitor.java:173)
>       at 
> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor.access$300(BasicLifecycleMonitor.java:41)
>       at 
> org.apache.geronimo.kernel.basic.BasicLifecycleMonitor$RawLifecycleBroadcaster.fireRunningEvent(BasicLifecycleMonitor.java:251)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:294)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:551)
>       at 
> org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
>       at 
> org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:442)
>       at 
> org.apache.geronimo.kernel.config.ConfigurationUtil.startConfigurationGBeans(ConfigurationUtil.java:479)
>       at 
> org.apache.geronimo.kernel.config.KernelConfigurationManager.start(KernelConfigurationManager.java:188)
>       at 
> org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:530)
>       at 
> org.apache.geronimo.kernel.config.SimpleConfigurationManager.startConfiguration(SimpleConfigurationManager.java:511)
>       at 
> org.apache.geronimo.kernel.config.SimpleConfigurationManager$$FastClassByCGLIB$$ce77a924.invoke(<generated>)
>       at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
>       at 
> org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:127)
>       at 
> org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:828)
>       at 
> org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
>       at 
> org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
>       at 
> org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
>       at 
> org.apache.geronimo.kernel.config.EditableConfigurationManager$$EnhancerByCGLIB$$7a707602.startConfiguration(<generated>)
>       at 
> org.apache.geronimo.deployment.plugin.local.StartCommand.run(StartCommand.java:67)
>       at java.lang.Thread.run(Thread.java:595)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to