You can use the <excludes> element when referencing the CXF jars to remove the incompatible ASM import.

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-incubator.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: [email protected]
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>(WrapperHelperCompiler.java:79)
        at
org.apache.cxf.jaxws.interceptors.WrapperHelperCompiler.compileWrapperHelper(WrapperHelperCompiler.java:89)
        at
org.apache.cxf.jaxws.interceptors.WrapperHelper.compileWrapperHelper(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.handleMessage(WrapperClassOutInterceptor.java:96)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
        at
org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:73)
        at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
        at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:73)
        at
org.apache.cxf.transport.servlet.ServletDestination.doMessage(ServletDestination.java:78)
        at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:231)
        at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:105)
        at
org.apache.cxf.transport.servlet.CXFServlet.invoke(CXFServlet.java:271)
        at 
org.apache.cxf.transport.servlet.CXFServlet.doGet(CXFServlet.java:253)
        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(DefaultGeneratorStrategy.java:30)
        at
net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
        at
net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.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.getProxyFactory(CGLIBLazyInitializer.java:117)
        at
org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)
        at
org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)
        at
org.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTuplizer.java:135)
        at
org.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.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>(AbstractEntityPersister.java:434)
        at
org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:109)
        at
org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
        at
org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:226)
        at
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)
        at
org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:915)
        at
org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:805)
        at
org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:745)
        at
org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:134)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1201)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1171)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:425)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1099)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1099)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:281)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:131)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1099)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:261)
        at
org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:109)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1099)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:861)
        at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:421)
        at
org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
        at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:156)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
        at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
        at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:287)
        at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
        at
org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:244)
        at
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
        at
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)
        at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3669)
        at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4104)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
        at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
        at
org.apache.catalina.core.StandardService.start(StandardService.java: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(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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.



Reply via email to