2010-09-22 17 views
5

Estoy intentando trabajar con "Beginning Hibernate 3.5", y he encontrado un inconveniente inicial.Iniciando Hibernate 3.5 - Problemas con la tarea ant

Cuando corro ant exportDDL, me sale el siguiente error:

exportDDL: 
    [htools] Executing Hibernate Tool with a Hibernate Annotation/EJB3 Configuration 
    [htools] 1. task: hbm2ddl (Generates database schema) 
    [htools] SLF4J: The requested version 1.6 by your slf4j binding is not compatible with [1.5.5, 1.5.6, 1.5.7, 1.5.8] 
    [htools] SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details. 
    [htools] An exception occurred while running exporter #2:hbm2ddl (Generates database schema) 
    [htools] To get the full stack trace run ant with -verbose 
    [htools] Problems in creating a AnnotationConfiguration. Have you remembered to add it to the classpath ? 
    [htools] java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.format(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple; 

BUILD FAILED 
C:\hibernate\project\build.xml:30: Problems in creating a AnnotationConfiguration. Have you 
remembered to add it to the classpath ? 

con la siguiente tarea ant:

<target name="exportDDL" depends="compile"> 
    <mkdir dir="${sql}"/> 
    <htools destdir="${sql}"> 
     <classpath refid="classpath.tools"/> 
     <annotationconfiguration 
       configurationfile="${src}/hibernate.cfg.xml"/> 
     <hbm2ddl drop="true" outputfilename="sample.sql"/> 
    </htools> 
</target> 
<target name="compile"> 
    <javac srcdir="${src}" destdir="${bin}" classpathref="classpath.base"/> 
</target> 

lo que está pasando aquí? ant compile funciona bien, pero la tarea exportDDL no funciona. El jar sl4j está en classpath y descargué slf4j-simple-1.6.1.jar. ¿Pensamientos?

Respuesta

18

Aquí resuelve lo que quiere

Mixing mixing different versions of slf4j artifacts can cause problems. For example, if you are using slf4j-api-1.6.1.jar, then you should also use slf4j-simple-1.6.1.jar, using slf4j-simple-1.5.5.jar will not work.

In general, you should make sure that the slf4j-api version matches that of the slf4j binding.

At initialization time, if SLF4J suspects that there may be a version mismatch problem, it will emit a warning about the suspected mismatch. For the exact details of the version mismatch detection mechanism, please refer to the relevant entry in the FAQ.

+0

Sí. Parece sl4j-api-1.5.8 –

3

He aquí un ejemplo que me encontré de la SLF4J puesta en marcha de aviso cuando se tiene versiones incompatibles SLF4J:

SLF4J: La versión 1.5.10 solicitado por su enlace slf4j no es compatible con [1.6] SLF4J: Consulte http://www.slf4j.org/codes.html#version_mismatch para obtener más información.

Cuestiones relacionadas