2009-11-25 4 views
0

J'ai un projet qui nécessite à la fois Jersey et Hibernate. Le problème est qu'ils utilisent tous les deux des versions incompatibles d'un fichier Jar (asm.jar) sous les couvertures. J'ai regardé autour de Google et il semble qu'il soit possible que Hibernate utilise une autre installation appelée Javassist, mais quand j'essaie de suivre les instructions, elle tombe à plat. Je reçois toujours l'incompatibilité entre ces fichiers Jar.Faire fonctionner Jersey et Hibernate ensemble?

De toute évidence, à partir de la pile trace le fichier asm.jar que j'utilise pour Jersey n'est pas compatible avec celui d'Hibernate. Si je retourne à l'asm.jar pour Hibernate alors mon code de Jersey échoue.

Quelqu'un at-il obtenu ce travail? Ou suis-je simplement coincé dans un "Pot Hell" permanent?

--Steve

PS Ma trace de la pile d'exécuter un de mes cas de test Hibernate ressemble à ceci:

junit.framework.AssertionFailedError: Exception dans le constructeur: testSurvey (java.lang.NoSuchMethodError: org .objectweb.asm.ClassWriter. (Z) V à net.sf.cglib.core.DebuggingClassWriter. (DebuggingClassWriter.java:47) à net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter (DefaultGeneratorStrategy.java:30) à net.sf.cglib.core.DefaultGeneratorStrategy.generate (DefaultGeneratorStrategy.java:24) à net.sf.cglib.c ore.AbstractClassGenerator.create (AbstractClassGenerator.java:216) à l'adresse net.sf.cglib.core.KeyFactory $ Generator.create (KeyFactory.java:145) à l'adresse net.sf.cglib.core.KeyFactory.create (KeyFactory. java: 117) à net.sf.cglib.core.KeyFactory.create (KeyFactory.java:108) à net.sf.cglib.core.KeyFactory.create (KeyFactory.java:104) à net.sf. cglib.proxy.Enhancer. (Enhancer.java:69) à org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory (CGLIBLazyInitializer.java:117) à org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate (CGLIBProxyFactory.java:43) à org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory (PojoEntityTuplizer.java:162) à org.hibernate.tuple.entity.AbstractEntit yTuplizer. (AbstractEntityTuplizer.java:135) à org.hibernate.tuple.entity.PojoEntityTuplizer. (PojoEntityTuplizer.java:55) à org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping. (EntityEntityModeToTuplizerMapping.java:56) à org .hibernate.tuple.entity.EntityMetamodel. (EntityMetamodel.java:295) à org.hibernate.persister.entity.AbstractEntityPersister. (AbstractEntityPersister.java:434) à org.hibernate.persister.entity.SingleTableEntityPersister. (SingleTableEntityPersister. java: 109) à org.hibernate.persister.PersisterFactory.createClassPersister (PersisterFactory.java:55) à org.hibernate.impl.SessionFactoryImpl. (SessionFactoryImpl.java:226) à org.hibernate.cfg.Configuration.buildSessionFactory (Configuration.java:1294) à org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory (AnnotationConfiguration.java:859) à org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory (Ejb3Configuration.java:669) à org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory (HibernatePersistence. java: 126) à javax.persistence.Persistence.createEntityManagerFactory (Persistence.java:51) à javax.persistence.Persistence.createEntityManagerFactory (Persistence.java:33) à com.upod.dao.SurveyDAOTest. (SurveyDAOTest.java : 39) à sun.reflect.NativeConstructorAccessorImpl.newInstance0 (méthode native) à sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java: 39) à sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:27) à java.lang.reflect.Constructor.newInstance (Constructor.java:513) à junit.framework.TestSuite.createTest (GroupTest. java: 58) à junit.framework.TestSuite.addTestMethod (TestSuite.java:280) à junit.framework.TestSuite (TestSuite.java:140) à org.eclipse.jdt.internal.junit.runner.junit3. .JUnit3TestLoader.getTest (JUnit3TestLoader.java:102) à org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.loadTests (JUnit3TestLoader.java:59) à org.eclipse.jdt.internal.junit.runner .RemoteTestRunner.runTests (RemoteTestRunner.java:445) sur org.eclipse.jdt.internal.junit.runner.RemoteTestRunne r.runTests (RemoteTestRunner.java:673) à org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner.java:386) à org.eclipse.jdt.internal.junit.runner.RemoteTestRunner. principal (RemoteTestRunner.java:196) ) à junit.framework.Assert.fail (Assert.java:47) à junit.framework.TestSuite $ 1.runTest (TestSuite.java:90) à junit.framework.TestCase .runBare (TestCase.java:130) à junit.framework.TestResult $ 1.protect (TestResult.java:106) à junit.framework.TestResult.runProtected (TestResult.java:124) à junit.framework.TestResult. run (TestResult.java:109) à junit.framework.TestCase.run (TestCase.java:120) à junit.framework.TestSuite .runTest (TestSuite.java:230) à junit.framework.TestSuite.run (TestSuite.java:225) à org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run (JUnit3TestReference.java:130) à org.eclipse.jdt.internal.junit.runner.TestExecution.run (TestExecution.java:38) à org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:460) à org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:673) à org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner.java:386) à org .eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:196)

+0

duplication possible de [Problème de compatibilité d'ASM 3.1 et HIbernate et JAX-RS] (http://stackoverflow.com/questions/969693/compatibility-issue-of-asm- 3-1-et-hibernate-et-jax-rs) –

Répondre

0

Il y a un coup le de réponses possibles sur this page avec une question similaire

+0

Ah, j'avais en partie raison. Mais c'est définitivement "la solution la plus directement utile" dont je parlais :) –

+0

Parfait. Laisser tomber cglib et le remplacer par cglib-nodep permet aux deux versions de asm de coexister. Cela signifie que Jersey et Hibernate peuvent travailler ensemble sans problème. Merci... – Steve

Questions connexes