[ 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.