Struts2 2.3.8 с соглашаемым плагином 2.3.8 не работает с hibernate 3.2.5(плагин netbeans fw)

Я хотел бы использовать плагин соглашения Struts2 (2.3.8) вместе с hibernate(плагин фреймворка netbeans 3.2.5), но существует конфликт перед двумя различными версиями asm.jar.

Hibernate отлично работает с struts2 fw, но когда я добавляю плагин конвенций, я получаю сообщение об ошибке:

java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
  • Hibernate 3.2.5 нуждается в asm.jar
  • Соглашаемому плагину Struts2 требуется asm-3.3.jar

Для плагина соглашения IMHO нужен класс: ClassWriter, который находится в asm-3.3.jar, но смотрит на asm.jar.

  • протестировано с Maven(нет конфликта, но не работает)
  • проверено без Maven(не работает)

Есть ли решение для достижения этой цели, когда Hibernate 3.2.5 не может быть изменен на более высокую версию?

3 ответа

Решение

Одним из способов было бы обновить библиотеку плагинов hibernate asm.jar и asm-3.3.jar. Вам нужно проверить, есть ли у Hiberate особые проблемы, используя asm-3.3.jar.

Если это не сработает, то мало что могу придумать

  • Modularize (переместить связанный с Hibernate класс как подпроект и ограничить библиотеку подпроектом)
  • Если вышеупомянутое невозможно, то определите место в стеке вызовов для манипулирования кэшем загрузчика классов (откажитесь от загруженных классов и загрузите их из конкретного jar-файла и т. Д.) Лично это было бы больно поддерживать.

Связанный пост

Если вы можете, попробуйте обновить Hibernate до последней версии, которая использует ту же версию библиотеки asm, что и Struts 2.3.8. Вы также можете попытаться исключить библиотеку asm из набора Hibernate - с Maven вы должны добавить раздел.

ИМХО проблема не в конфликте библиотек. я использую Hibernate 3.2.5.ga с Struts 2.3.7 только с asm библиотека. Библиотеки, которые я использую в своем проекте (касается только Hibernate а также Struts) являются:

 ├── hibernate
 │   ├── dom4j-1.6.1.jar
 │   ├── ehcache-1.2.3.jar
 │   ├── hibernate3.jar
 │   ├── hibernate-annotations.jar
 │   ├── hibernate-commons-annotations.jar
 │   ├── hibernate-entitymanager.jar
 │   ├── hibernate-tools.jar
 │   ├── javassist.jar
 │   ├── jdbc2_0-stdext.jar
 │   └── jta.jar
 ├── struts-2.3.7
     ├── antlr-2.7.2.jar
     ├── asm-3.3.jar
     ├── asm-commons-3.3.jar
     ├── cglib-nodep-2.2.2.jar
     ├── commons-beanutils-1.8.0.jar
     ├── commons-collections-3.1.jar
     ├── commons-digester-2.0.jar
     ├── commons-fileupload-1.2.2.jar
     ├── commons-io-2.0.1.jar
     ├── commons-lang-2.5.jar
     ├── commons-lang3-3.1.jar
     ├── commons-logging-1.1.1.jar
     ├── freemarker-2.3.19.jar
     ├── ognl-3.0.5.jar
     ├── struts2-convention-plugin-2.3.7.jar
     ├── struts2-core-2.3.7.jar
     ├── struts2-fullhibernatecore-plugin-2.2.2-GA.jar
     ├── struts2-json-plugin-2.3.7.jar
     └── xwork-core-2.3.7.jar
Другие вопросы по тегам