Pergunta

Estou usando o Hibernate 3.5.0, JBoss como 6 e LILIBASE 1.9.5.

Eu queria ativar Ehcache Hibernate Cache de segundo nível do seguinte modo:

A primeira coisa que faço é adicionar uma nova dependência ao pom.xml:

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

Agora, quando eu reimploy meu aplicativo, a exceção após a exceção é lançada:

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]
        ...

Observe que eu não ativei o cache em persistence.xml ainda (!)

Isso toca um sino para alguém? Qualquer pista é mais que bem -vinda.

Obrigada!

Foi útil?

Solução 2

Parece uma incompatibilidade de versão.

Na verdade, o ehcache 2.2 parece se encaixar melhor na minha configuração. (Hibernate 3.5.0 e JBoss como 6 (e LILIBASE 1.9.5)):

adicionar à persistence.xml:

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

adicionar à pom.xml:

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

(Essa dependência do Maven não depende explicitamente do "hibernado", o que mantém a hierachy de dependência um pouco mais limpa.)

Outras dicas

Existe alguma outra mensagem "causada por" mais tarde?

Eu poderia ser que o LIFIBASE seja construído contra uma versão anterior do Hibernate do que você está executando e a API de hibernato mudou. Você acabou de adicionar a dependência do ehcache? Ou o hibernato também foi atualizado?

O artefato hibernate-ehcache Não adiciona nenhum artefato de hibernato em particular, por isso não tenho certeza se é realmente a causa raiz do problema. No entanto, talvez você tenha mudado a ordem do caminho de classe (declarando -a antes do liquidbase) e você revelado o problema. Talvez você possa tentar declará -lo depois (no pom.xml).

Você também pode tentar executar a JVM com -Xverify:all Para ver se você recebe uma mensagem mais útil.

Ou, LICIBASE RECOMPILE contra o Hibernate 3.5.x.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top