Problem mit Hibernate und SLF4J - NoSuchMethodException

Status
Nicht offen für weitere Antworten.

mad-din

Bekanntes Mitglied
Hi Leute!

Ich wollte gerade einen simplen Test machen zusammen mit Hibernate (die neuen Versionen 3.4.0) und bekomm dabei immer eine NoSuchMethodException, was SLF4J betrifft.

Hier mal schnell meine Testklasse:

Code:
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class JPAHibernateTest {


	public static void main(String[] args) {
		
		EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpatest");
		EntityManager em = emf.createEntityManager();
		
		System.out.println("EntityManager loaded...");
		System.out.println("Ready to do some database operations...");
		
		em.close();
		emf.close();

		org.slf4j.LoggerFactory.getILoggerFactory();
		
	}

}

Und die dazugehörige persistence.xml:


Code:
<?xml version="1.0" encoding="UTF-8"?>
<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_1_0.xsd"
	version="1.0">
   <persistence-unit name="jpatest" transaction-type="RESOURCE_LOCAL">
      <properties>
         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnodbDialect"/>
         <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
         <property name="hibernate.connection.username" value="root"/>
         <property name="hibernate.connection.password" value="123"/>
         <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jpatest"/>
         <property name="hibernate.max_fetch_depth" value="3"/>
      </properties>
   </persistence-unit>

</persistence>

So, das müsste ja eigentlich funktionieren (auf nem anderen Rechner gehts auch, aber der verwendet für Annotations und EntityManager noch 3.3 und einen älteren Core). Mit den neuen Versionen bekomme ich jedoch immer diese blöde NoSuchMethodException. Soweit ich schon rausfinden konnte, liegt es an einer Methode, die log4j vor der Version 1.2.12 nicht unterstützt, aber ich hab auch schon die log4j.jar durch die Version 1.2.15 ersetzt, was aber zur gleichen Meldung führt.

Kennt jemand das Problem und vielleicht sogar schon eine Lösung dafür?

Danke & viele Grüße,
Martin
 
Hi!

Die Version 1.4.2 wird ja auch mitgeliefert, aber auch mit dieser Version funktioniert es nicht.

Viele Grüße,
Martin

P.S.: Hab schon ne ältere versucht, mit der gehts auch nicht! Kann man Hibernate irgendwie sagen, dass er weiterhin nur Log4j und nicht SLF4j verwenden soll?
 
Hi!

Für alle, die es interessiert: das Problem ist die mitgelieferte slf4-log4j12.jar, mit der es nicht funktioniert. Verwendet man stattdessen die slf4j-simple.jar, die man sich selbst besorgen muss, funktioniert es.

Viele Grüße,
Martin
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben