Yea, it's definitely a bug in 2.0.1.  Logged at:

https://issues.apache.org/jira/browse/CXF-915

It is fixed on trunk and in the latest 2.1 SNAPSHOT.    Basically, 2.0.1 
will work with 3.0 and will work if no ASM is available at all (degrades 
to reflection).  However, it doesn't work if 2.x or 1.x is available. 

On trunk, it will use ASM 3.0 or 2.x just fine.   If 1.x is found, it 
degrades to reflection.  

Dan


On Friday 24 August 2007, Holger Stolzenberg wrote:
> The problem refers to version 2.0.1-INCUBATOR. Regarding the POM at
> http://people.apache.org/repo/m2-incubating-repository/org/apache/cxf/
>cxf-rt-frontend-jaxws/2.0.1-incubator/cxf-rt-frontend-jaxws-2.0.1-incub
>ator.pom you can see that there is no version defined for 'asm'
> artifact so the highest available version will be used (unless
> otherwise defined), which causes the incompatibility to hibernate.
>
>
> -----Ursprüngliche Nachricht-----
> Von: Willem Jiang [mailto:[EMAIL PROTECTED]
> Gesendet: Freitag, 24. August 2007 03:05
> An: cxf-user@incubator.apache.org
> Betreff: Re: cxf-2.0.1-incubator - dependency incompatibility with
> hibernate
>
> AFAIK, current CXF trunk has upgrade the asm to 2.2.3 for better
> hibernate integration. You can try out the latest version or just use
> asm 2.xx to go around it.
>
> Willem.
>
> gdprao wrote:
> > Hi,
> >
> > I have tried the following workaround and could able to resolve this
> > error.
> >
> > 1. Removed Hibernate's asm.jar,cglib-2.1.3.jar and asm-attrs.jar
> > from classpath.
> > 2. Placed cglib-nodep-2.1_3.jar in classpath (downloaded from
> > http://repo1.maven.org/maven2/cglib/cglib-nodep/2.1_3/).
> > 3. Included asm3.0.jar from CXF2.0.1 from distribution into the
> > classpath.
> >
> > Both Hibernate and CXF errors are disappeared.
> >
> > Thanks,
> > Durga
> >
> > gdprao wrote:
> >> Hi Sotlzenberg,
> >>
> >> I am also facing the same exception after upgrading to CXF-2.0.1
> >> with CXF asm jars  which seems to be incompatible with hibernate
> >> jars.  I don't have this issue when I am working with CXF-2.0
> >> version. If I place asm jars that comes with hibernate, the
> >> Hibernate error disappears, but CXF service is breaking with the
> >> following exception at run time.  Appreciate if someone could help
> >> me out on this?
> >>
> >> Thanks,
> >> Durga
> >>
> >> 14:19:31,667 ERROR [CXFServlet]:invoke(253) | Servlet.service() for
> >> servlet CXFServlet threw exception
> >> java.lang.NoSuchMethodError:
> >> org.objectweb.asm.ClassWriter.<init>(I)V at
> >> org.apache.cxf.jaxws.interceptors.WrapperHelperCompiler.<init>(Wrap
> >>perHelperCompiler.java:79) at
> >> org.apache.cxf.jaxws.interceptors.WrapperHelperCompiler.compileWrap
> >>perHelper(WrapperHelperCompiler.java:89) at
> >> org.apache.cxf.jaxws.interceptors.WrapperHelper.compileWrapperHelpe
> >>r(WrapperHelper.java:234) at
> >> org.apache.cxf.jaxws.interceptors.WrapperHelper.createWrapperHelper
> >>(WrapperHelper.java:210) at
> >> org.apache.cxf.jaxws.interceptors.WrapperHelper.createWrapperHelper
> >>(WrapperHelper.java:172) at
> >> org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor.handle
> >>Message(WrapperClassOutInterceptor.java:96) at
> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterce
> >>ptorChain.java:207) at
> >> org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(O
> >>utgoingChainInterceptor.java:73) at
> >> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterce
> >>ptorChain.java:207) at
> >> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainIni
> >>tiationObserver.java:73) at
> >> org.apache.cxf.transport.servlet.ServletDestination.doMessage(Servl
> >>etDestination.java:78) at
> >> org.apache.cxf.transport.servlet.ServletController.invokeDestinatio
> >>n(ServletController.java:231) at
> >> org.apache.cxf.transport.servlet.ServletController.invoke(ServletCo
> >>ntroller.java:105) at
> >> org.apache.cxf.transport.servlet.CXFServlet.invoke(CXFServlet.java:
> >>271) at
> >> org.apache.cxf.transport.servlet.CXFServlet.doGet(CXFServlet.java:2
> >>53) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> >>
> >> h.stolzenberg wrote:
> >>> I recently upgraded to cxf-2.0.1-incubator. After that the
> >>> following exception occured starting up my webapp:
> >>>
> >>> Error creating bean with name 'SpringSessionFactory' defined in
> >>> ServletContext resource
> >>> [/WEB-INF/classes/beans/persistence.context.xml]: Invocation of
> >>> init method failed; nested exception is
> >>> java.lang.NoSuchMethodError:
> >>> org.objectweb.asm.ClassWriter.<init>(Z)V
> >>> Caused by:
> >>> java.lang.NoSuchMethodError:
> >>> org.objectweb.asm.ClassWriter.<init>(Z)V at
> >>> net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter
> >>>.java:47) at
> >>> net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultG
> >>>eneratorStrategy.java:30) at
> >>> net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGenerat
> >>>orStrategy.java:24) at
> >>> net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGener
> >>>ator.java:216) at
> >>> net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
> >>> at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117) at
> >>> net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108) at
> >>> net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104) at
> >>> net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69) at
> >>> org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactor
> >>>y(CGLIBLazyInitializer.java:117) at
> >>> org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(C
> >>>GLIBProxyFactory.java:43) at
> >>> org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(Po
> >>>joEntityTuplizer.java:162) at
> >>> org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractE
> >>>ntityTuplizer.java:135) at
> >>> org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTup
> >>>lizer.java:55) at
> >>> org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.<init
> >>>>(EntityEntityModeToTuplizerMapping.java:56) at
> >>> org.hibernate.tuple.entity.EntityMetamodel.<init>(EntityMetamodel.
> >>>java:295) at
> >>> org.hibernate.persister.entity.AbstractEntityPersister.<init>(Abst
> >>>ractEntityPersister.java:434) at
> >>> org.hibernate.persister.entity.SingleTableEntityPersister.<init>(S
> >>>ingleTableEntityPersister.java:109) at
> >>> org.hibernate.persister.PersisterFactory.createClassPersister(Pers
> >>>isterFactory.java:55) at
> >>> org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.ja
> >>>va:226) at
> >>> org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.
> >>>java:1294) at
> >>> org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(Anno
> >>>tationConfiguration.java:915) at
> >>> org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSess
> >>>ionFactory(LocalSessionFactoryBean.java:805) at
> >>> org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSe
> >>>ssionFactory(LocalSessionFactoryBean.java:745) at
> >>> org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afte
> >>>rPropertiesSet(AbstractSessionFactoryBean.java:134) at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.jav
> >>>a:1201) at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1
> >>>171) at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
> >>> at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory$1.ge
> >>>tObject(AbstractBeanFactory.java:251) at
> >>> org.springframework.beans.factory.support.DefaultSingletonBeanRegi
> >>>stry.getSingleton(DefaultSingletonBeanRegistry.java:156) at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getB
> >>>ean(AbstractBeanFactory.java:248) at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getB
> >>>ean(AbstractBeanFactory.java:160) at
> >>> org.springframework.beans.factory.support.BeanDefinitionValueResol
> >>>ver.resolveReference(BeanDefinitionValueResolver.java:261) at
> >>> org.springframework.beans.factory.support.BeanDefinitionValueResol
> >>>ver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
> >>> at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.j
> >>>ava:1099) at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861
> >>>) at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
> >>> at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory$1.ge
> >>>tObject(AbstractBeanFactory.java:251) at
> >>> org.springframework.beans.factory.support.DefaultSingletonBeanRegi
> >>>stry.getSingleton(DefaultSingletonBeanRegistry.java:156) at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getB
> >>>ean(AbstractBeanFactory.java:248) at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getB
> >>>ean(AbstractBeanFactory.java:160) at
> >>> org.springframework.beans.factory.support.BeanDefinitionValueResol
> >>>ver.resolveReference(BeanDefinitionValueResolver.java:261) at
> >>> org.springframework.beans.factory.support.BeanDefinitionValueResol
> >>>ver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
> >>> at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.j
> >>>ava:1099) at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861
> >>>) at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
> >>> at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory$1.ge
> >>>tObject(AbstractBeanFactory.java:251) at
> >>> org.springframework.beans.factory.support.DefaultSingletonBeanRegi
> >>>stry.getSingleton(DefaultSingletonBeanRegistry.java:156) at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getB
> >>>ean(AbstractBeanFactory.java:248) at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getB
> >>>ean(AbstractBeanFactory.java:160) at
> >>> org.springframework.beans.factory.support.BeanDefinitionValueResol
> >>>ver.resolveReference(BeanDefinitionValueResolver.java:261) at
> >>> org.springframework.beans.factory.support.BeanDefinitionValueResol
> >>>ver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
> >>> at
> >>> org.springframework.beans.factory.support.BeanDefinitionValueResol
> >>>ver.resolveManagedList(BeanDefinitionValueResolver.java:281) at
> >>> org.springframework.beans.factory.support.BeanDefinitionValueResol
> >>>ver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:131)
> >>> at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.j
> >>>ava:1099) at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861
> >>>) at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
> >>> at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory$1.ge
> >>>tObject(AbstractBeanFactory.java:251) at
> >>> org.springframework.beans.factory.support.DefaultSingletonBeanRegi
> >>>stry.getSingleton(DefaultSingletonBeanRegistry.java:156) at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getB
> >>>ean(AbstractBeanFactory.java:248) at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getB
> >>>ean(AbstractBeanFactory.java:160) at
> >>> org.springframework.beans.factory.support.BeanDefinitionValueResol
> >>>ver.resolveReference(BeanDefinitionValueResolver.java:261) at
> >>> org.springframework.beans.factory.support.BeanDefinitionValueResol
> >>>ver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
> >>> at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.j
> >>>ava:1099) at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861
> >>>) at
> >>> org.springframework.beans.factory.support.AbstractAutowireCapableB
> >>>eanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
> >>> at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory$1.ge
> >>>tObject(AbstractBeanFactory.java:251) at
> >>> org.springframework.beans.factory.support.DefaultSingletonBeanRegi
> >>>stry.getSingleton(DefaultSingletonBeanRegistry.java:156) at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getB
> >>>ean(AbstractBeanFactory.java:248) at
> >>> org.springframework.beans.factory.support.AbstractBeanFactory.getB
> >>>ean(AbstractBeanFactory.java:160) at
> >>> org.springframework.beans.factory.support.DefaultListableBeanFacto
> >>>ry.preInstantiateSingletons(DefaultListableBeanFactory.java:287) at
> >>> org.springframework.context.support.AbstractApplicationContext.ref
> >>>resh(AbstractApplicationContext.java:352) at
> >>> org.springframework.web.context.ContextLoader.createWebApplication
> >>>Context(ContextLoader.java:244) at
> >>> org.springframework.web.context.ContextLoader.initWebApplicationCo
> >>>ntext(ContextLoader.java:187) at
> >>> org.springframework.web.context.ContextLoaderListener.contextIniti
> >>>alized(ContextLoaderListener.java:49) at
> >>> org.apache.catalina.core.StandardContext.listenerStart(StandardCon
> >>>text.java:3669) at
> >>> org.apache.catalina.core.StandardContext.start(StandardContext.jav
> >>>a:4104) at
> >>> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:10
> >>>12) at
> >>> org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
> >>> at
> >>> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:10
> >>>12) at
> >>> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:
> >>>442) at
> >>> org.apache.catalina.core.StandardService.start(StandardService.jav
> >>>a:450) at
> >>> org.apache.catalina.core.StandardServer.start(StandardServer.java:
> >>>683) at
> >>> org.apache.catalina.startup.Catalina.start(Catalina.java:537) at
> >>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorIm
> >>>pl.java:39) at
> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAc
> >>>cessorImpl.java:25) at
> >>> java.lang.reflect.Method.invoke(Method.java:597)
> >>>   at
> >>> org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271) at
> >>> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
> >>>
> >>> I noticed that the or.objectweb ASM library version has grown from
> >>> 1.5.x
> >>> -> 3.0. I think because it is a direct dependency of
> >>> cxf-2.0.1-incubator. But as you can see hibernate cannot use this
> >>> version of ASM as I think the ASM API has chnged to much between
> >>> this versions. So I had to redefine my dependencies the following
> >>> way:
> >>>
> >>> <dependency>
> >>>   <groupId>org.apache.cxf</groupId>
> >>>   <artifactId>cxf-rt-frontend-jaxws</artifactId>
> >>>   <version>2.0.1-incubator</version>
> >>>   <exclusions>
> >>>           <exclusion>
> >>>                   <groupId>asm</groupId>
> >>>                   <artifactId>asm</artifactId>
> >>>           </exclusion>
> >>>   </exclusions>
> >>> </dependency>
> >>> <dependency>
> >>>   <groupId>org.apache.cxf</groupId>
> >>>   <artifactId>cxf-rt-transports-http</artifactId>
> >>>   <version>2.0.1-incubator</version>
> >>> </dependency>
> >>> <dependency>
> >>>   <groupId>org.apache.cxf</groupId>
> >>>   <artifactId>cxf-rt-databinding-aegis</artifactId>
> >>>   <version>2.0.1-incubator</version>
> >>> </dependency>
> >>> <dependency>
> >>>   <groupId>org.apache.cxf</groupId>
> >>>   <artifactId>cxf-rt-transports-http-jetty</artifactId>
> >>>   <version>2.0.1-incubator</version>
> >>>   <scope>test</scope>
> >>> </dependency>
> >>> <dependency>
> >>>   <groupId>org.hibernate</groupId>
> >>>   <artifactId>hibernate</artifactId>
> >>>   <version>3.2.4.sp1</version>
> >>> </dependency>
> >>>
> >>> But the problem is that I do not know if this causes any side
> >>> effects in CXF. All my tests are still running, but I do not like
> >>> the way of excluding ASM.
> >>> Is there a better approach.
> >>>
> >>> Maybe you should consider the define a dependency range in maven
> >>> if ASM 3.0 is not absolutely required for cxf-2.0.1-incubator. For
> >>> me, direct compatibility to Hibernate is essential.
> >>>
> >>>
> >>> Mit lieben Grüßen aus dem eWerk
> >>>
> >>>   |  Holger Stolzenberg
> >>>   |  Softwareentwickler
> >>>   |
> >>>   |  Geschäftsführer:
> >>>   |  Frank Richter, Erik Wende, Hendrik Schubert
> >>>   |
> >>>   |  eWerk IT GmbH
> >>>   |  Markt 16
> >>>   |  Leipzig 04109
> >>>   |  http://www.ewerk.com
> >>>   |  HRB 9065, AG Leipzig
> >>>   |  Hauptniederlassung Leipzig
> >>>   |
> >>>   |  fon +49.341.4 26 49-0
> >>>   |  fax +49.341.4 26 49-88
> >>>   |  mailto:[EMAIL PROTECTED]
> >>>   |
> >>>   |  Support:
> >>>   |  fon 0700 CALLME24 (0700 22556324)
> >>>   |  fax 0700 CALLME24 (0700 22556324)
> >>>   |
> >>>   | Auskünfte und Angebote per Mail
> >>>   | sind freibleibend und unverbindlich.



-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194
[EMAIL PROTECTED]
http://www.dankulp.com/blog

Reply via email to