2010-09-22 28 views
5

Tôi đang cố gắng làm việc thông qua "Beginning Hibernate 3.5", và tôi đã nhấn một snag ban đầu.Bắt đầu Hibernate 3.5 - Vấn đề với nhiệm vụ kiến ​​

Khi tôi chạy ant exportDDL, tôi nhận được lỗi sau:

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 ? 

với nhiệm vụ kiến ​​sau:

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

gì đang xảy ra ở đây? ant compile hoạt động tốt, nhưng nhiệm vụ exportDDL thì không. Bình sl4j nằm trên đường dẫn lớp và tôi đã tải xuống slf4j-simple-1.6.1.jar. Suy nghĩ?

Trả lời

18

đây giải quyết những gì bạn muốn

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

Yup. Có vẻ như sl4j-api-1.5.8 –

3

Dưới đây là một ví dụ tôi tình cờ gặp của SLF4J khởi động cảnh báo khi bạn đã có phiên bản tương thích slf4j:

SLF4J: Phiên bản yêu cầu 1.5.10 bởi liên kết slf4j của bạn không tương thích với [1.6] SLF4J: Xem http://www.slf4j.org/codes.html#version_mismatch để biết thêm chi tiết.

Các vấn đề liên quan