Hibernate Cache второго уровня Библиотека EhCache не соответствует? - PullRequest
1 голос
/ 02 сентября 2010

Я использую Hibernate 3.5.0, JBoss AS 6 и Liquibase 1.9.5.

Я хотел активировать EhCache Спящий режим кэширования второго уровня следующим образом:

Первое, что я делаю, это добавление новой зависимости к pom.xml :

 <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-ehcache</artifactId>
            <version>3.5.0-Final</version>
 </dependency>

Теперь, когда я повторно разверну свое приложение, выдается следующее исключение:

Caused by: java.lang.VerifyError: (class: liquibase/database/HibernateDatabase, method: <init> signature: (Ljava/lang/String;)V) Bad type in putfield/putstatic
        at java.lang.Class.getDeclaredMethods0(Native Method) [:1.6.0_18]
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) [:1.6.0_18]
        at java.lang.Class.getDeclaredMethods(Class.java:1791) [:1.6.0_18]
        at org.jboss.deployment.AnnotatedClassFilter.hasAnnotations(AnnotatedClassFilter.java:186) [:6.0.0.20100429-M3]
        at org.jboss.deployment.AnnotatedClassFilter.accepts(AnnotatedClassFilter.java:114) [:6.0.0.20100429-M3]
        at org.jboss.deployment.AnnotatedClassFilter.visit(AnnotatedClassFilter.java:99) [:6.0.0.20100429-M3]
        at org.jboss.vfs.VirtualFile.visit(VirtualFile.java:407) [jboss-vfs.jar:3.0.0.CR5]
        at org.jboss.vfs.VirtualFile.visit(VirtualFile.java:409) [jboss-vfs.jar:3.0.0.CR5]
        ...

Обратите внимание, что я не активировал кэширование в persistence.xml (())

Звонит ли это кому-нибудь? Любые подсказки приветствуются.

Спасибо!

Ответы [ 3 ]

1 голос
/ 02 сентября 2010

Похоже на несовпадение версий.

На самом деле, EhCache 2.2, кажется, лучше подходит для моей конфигурации.(Hibernate 3.5.0 и JBoss AS 6 (и Liquibase 1.9.5)):

Добавить в persistence.xml :

    <property name="hibernate.cache.region.factory_class" value="net.sf.ehcache.hibernate.EhCacheRegionFactory"/>

Добавить в pom.xml :

<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache-core</artifactId>
    <version>2.2.0</version>
</dependency>

(Эта зависимость Maven явно не зависит от "Hibernate", который сохраняет иерархию зависимостей немного чище.)

1 голос
/ 02 сентября 2010

Есть ли другие сообщения "Причины" позже?

Возможно, что liquibase построен на более ранней версии hibernate, чем вы работаете, и API hibernate изменился. Вы только что добавили зависимость ehcache? Или Hibernate также обновился?

0 голосов
/ 02 сентября 2010

Артефакт hibernate-ehcache не добавляет какой-либо конкретный артефакт Hibernate, поэтому я не уверен, что это действительно основная причина проблемы.Однако, возможно, вы изменили порядок пути к классам (объявив его перед жидкой базой), и вы выявили проблему.Вы можете попытаться объявить это после (в pom.xml).

Вы также можете попытаться запустить JVM с -Xverify:all, чтобы увидеть, получите ли вы более полезное сообщение.Или перекомпилируйте liquibase против Hibernate 3.5.x.

...