5

我正在尝试完成“Beginning Hibernate 3.5”,但遇到了最初的障碍。

当我运行时ant exportDDL,我收到以下错误:

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 ?

执行以下蚂蚁任务:

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

这里发生了什么?ant compile工作正常,但exportDDL任务没有。sl4j jar 在类路径中,我下载了slf4j-simple-1.6.1.jar. 想法?

4

2 回答 2

18

这里解决你想要的

混合混合不同版本的 slf4j 工件可能会导致问题。例如,如果您使用的是 slf4j-api-1.6.1.jar,那么您也应该使用 slf4j-simple-1.6.1.jar,使用 slf4j-simple-1.5.5.jar 将不起作用。

通常,您应该确保 slf4j-api 版本与 slf4j 绑定的版本匹配

在初始化时,如果 SLF4J 怀疑可能存在版本不匹配问题,它会发出关于怀疑不匹配的警告。关于版本不匹配检测机制的具体细节,请参考FAQ中的相关条目。

于 2010-09-22T20:44:48.367 回答
3

这是我遇到的 SLF4J 启动警告的示例,当您有不兼容的 slf4j 版本时:

SLF4J:您的 slf4j 绑定请求的 1.5.10 版本与 [1.6] SLF4J 不兼容:有关详细信息,请参阅http://www.slf4j.org/codes.html#version_mismatch

于 2011-12-22T13:36:40.250 回答