咨询1
咨询2
交流群
电话

eclipse插件Hibernate tools与slf4j冲突

文档 > 后端知识 2013-04-06 19:25 阅读

Eclipse Indigo Service Release 2安装hibernate tools插件的地址:

http://download.jboss.org/jbosstools/updates/stable/indigo

hibernate tools jar包:\plugins\org.hibernate.eclipse.libs_3.5.1.v20120715-0252-H98-Final\lib\tools

hibernate tools源码地址:http://anonsvn.jboss.org/repos/hibernate/trunk/HibernateExt/tools/

hibernate tools反向工程源码地址:http://anonsvn.jboss.org/repos/hibernate/trunk/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/

安装后,浏览Database出现错误:

An internal error occurred during: "Fetching children of Database".

java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V

原因是hibernate tools使用slf4j1.5.8,而在工程中又有更新版本的slf4j。

经过反复检查,并不是slf4j-api-1.7.2.jar导致的问题,而是jcl-over-slf4j-1.7.2.jar导致的。

将jcl-over-slf4j-1.7.2.jar移出工程的lib目录,即可解决问题。

还一个办法是Edit Configuration -- Classpath,将默认的classpath删除,Add External JARs,加入数据库驱动即可。