Заставить Джерси и Hibernate работать вместе?
У меня есть проект, который требует и Джерси и Hibernate. Проблема в том, что они оба используют несовместимые версии файла Jar (asm.jar) под обложками. Я посмотрел вокруг Google, и кажется, что Hibernate может использовать другое средство под названием Javassist, но когда я пытаюсь следовать инструкциям, оно не работает. Я все еще получаю несовместимость между этими файлами Jar.
Очевидно, что из стека проследить, что asm.jar, который я использую для Джерси, не совместим с тем для Hibernate. Если я переключаюсь обратно на asm.jar для Hibernate, то мой код на Джерси не работает.
Кто-нибудь получил это на работу? Или я просто застрял в постоянном "Jar Hell"?
--Стив
PS Моя трассировка стека от запуска одного из моих тестовых примеров Hibernate выглядит следующим образом:
junit.framework.AssertionFailedError: Исключение в конструкторе: testSurvey (java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.(Z)V в net.sf.cglib.core.DebuggingClassWriter.(отладка): класс отладки:.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30) в net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24) в net.sf.cglib.core.AglassCateGateGateGateGateGateGateGateGateGateGateGateGateCateGateGateGateGateGateGateGateGateGateGateGateGate.java:216) в net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145) в 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: CABL.jpg.jpg.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162) при org.hibernate.tuple.entity.AbstractEntityTuplizer.(AbstractEntityTuplizer.java:135) при org.hibernate.tuple.entity.PojoEntityTuplizer.(PojoEntityTuplizer.java:55) в org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.(EntityEntityModeToTuplizerMapping.java:56) в org.hibernate.tuple.entity.EntityMetamodel.:434) в org.hibernate.persister.entity.SingleTableEntityPersister.(SingleTableEntityPersister.java:109) в org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55) в org.hibernate.implF. Java:226) в org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294) в org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859) в org.hibernate.ejb.EildbEff ityManagerFactory(Ejb3Configuration.java:669) по адресу org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:126) по адресу javax.persistence.Persistence.createEntityMant.java:33) в com.upod.dao.SurveyDAOTest.(SurveyDAOTest.java:39) в sun.reflect.NativeConstructorAccessorImpl.newInstance0(собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConmpl)jor.reflect.TestSuite.addTestMethod(TestSuite.java:280) в junit.framework.TestSuite.(TestSuite.java:140) в org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.getTjT0) org.eclipse.jdt.interna l.junit.runner.junit3.JUnit3TestLoader.loadTests (JUnit3TestLoader.java:59) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.ipternal.java.java4) junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) в org.eclipseternal.jt.jt RemoteTestRunner.main(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) в организации.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.Remoterun RemoteTestRunner.java:460) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) в org.eclipse.jdt.internal.junit.runner.RemoteTestRuner.junit.runner.RemoteTestRun 386) в org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
1 ответ
На этой странице есть несколько возможных ответов с похожим вопросом.