Проблема возникает при интеграции гибернации с полноценным веб-сервисом?
Я использую Hibernate некоторое время сейчас без каких-либо (больших) проблем. Сейчас я пытаюсь разработать RESTful Webservices с проектом Джерси.
Похоже, что hibernate, который зависит от платформы ASM (asm.jar, asm-attrs.jar) и jersey, который также зависит от ASM (asm V3.1 от asm-3.1.jar), имеет проблемы с версиями реализации asm.
При использовании asm.jar в jersey отсутствует метод в org.objectweb.asm.ClassVisitor. При использовании asm-3.1.jar из дистрибутива jersey hibernate жалуется на отсутствие класса net.sf.cglib.proxy.Enhancer, который представлен в cglib-2.1.3.jar.
Обе библиотеки используют cglib.jar. Спасибо и С наилучшими пожеланиями Niladri
2 ответа
Я решил эту "проблему зависимости", переключившись с cglib на javassist в hibernate
hibernate.properties:
hibernate.bytecode.provider=javassist
и пусть джерси использует cglib.
Я использую Maven в качестве инструмента для сборки, и я решил проблему, исключив ASM и вместо этого включив зависимость "CGLIB No Dependency".
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>${hibernate.version}</version>
<exclusions>
<exclusion>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
</exclusion>
<exclusion>
<groupId>asm</groupId>
<artifactId>asm-attrs</artifactId>
</exclusion>
<exclusion>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>${cglib.version}</version>
</dependency>