Ich versuche ein Upgrade von Hibernate 3.2 auf 3.4, die offenbar Slf4j verwendet. Unser Projekt verwendet derzeit log4j. Also meine Annahme ist, dass ich die Slf4j-Log4j12 Wrapped-Implementierung verwenden sollte.Hibernate 3.4 mit slf4j und log4j
Die Maven slf4j Abhängigkeit ist:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.6</version>
</dependency>
Während die log4j Abhängigkeit ist:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
</dependency>
Sowohl slf4j-log4j12 und log4j verweisen auf die neueste Version (die ich im Maven Repository finden konnte) . Wenn ich meine App starte, schlägt Hibernate bei der Protokollierung fehl:
Was fehlt mir?
Edit 1: Wenn ich die log4j Abhängigkeit von meinem pom.xml entfernen erhalte ich die Fehlermeldung:
java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:163)
...
Edit 2:This blog Ansprüche das Problem durch Hibernate Annotations verursacht wird, mit dem falschen Versand Version von slf4j-api.jar.
Hibernate 3.4? Kommt dieser Post aus der Zukunft? – cherouvim