2
respostas

Não consigo configuar o Oracle com Hibernate

Prezados, não consigo, de forma alguma, configurar o Hibernate com Banco de Dados Oracle. Também já não havia conseguido configurar o Oracle com JDBC. Peço que auxiliem, segue meu persistence.xml.

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
    version="2.0">

    <!--  unidade de persistência com o nome financas -->
    <persistence-unit name="financas">
        <!-- Implementacao do JPA, no nosso caso Hibernate -->
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <!-- Aqui são listadas todas as entidades -->
        <class>br.com.caelum.financas.modelo.Conta</class>
        <!-- Propriedade Oracle -->
        <properties>
            <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:8080/DSV01" />
            <property name="javax.persistence.jdbc.user" value="***** />
            <property name="javax.persistence.jdbc.password" value="*********" />

            <!-- Configurações específicas do Hibernate -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />
            <property name="hibernate.hbm2ddl.auto" value="update" />
            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="true" />
        </properties>
    </persistence-unit>

</persistence>
Erro: Exception in thread "main" java.lang.SecurityException: class "org.hibernate.cfg.Configuration"'s signer information does not match signer information of other classes in the same package
    at java.lang.ClassLoader.checkCerts(ClassLoader.java:898)
    at java.lang.ClassLoader.preDefineClass(ClassLoader.java:668)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:761)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:125)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
    at br.com.caelum.financas.modelo.TesteConta.main(TesteConta.java:18)
2 respostas

Olá, Daniel!

Você conseguiu conectar com outro BD?

Parece ser um erro que acontece quando há mais de um signed JAR com o mesmo pacote e há conflito na assinatura.

Qual servidor de aplicação?

Alexandre,

Quando eu postei o problema eu estava tentando somente com o Oracle. Como já estou com o curso Alura parado há 3 dias por conta disto, acabei por configurar com o HSQLDB, pois já utilizei no curso de JDBC. Ainda assim, a implementação deste foi conforme orientações encontradas na internet. Tenho tido muitos problemas nas implementações destes cursos, especialmente nas configurações. Sugiro que todas as bibliotecas, frameworks, API's, IDE's e assemelhados sejam disponibilizados exatamente como são utilizados pelos instrutores. As linhas de comando utilizadas nos cursos são outra "pedra no sapato". Nunca funciona no Windows como o instrutor realiza, normalmente no Mac. Sempre há alguma diferença sobre a qual tenho que perguntar a um colega de trabalho, ou obter a solução na internet.