OK. Great. Thank you for that insight.
Here's a snippet of the trace:
Code:
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.debug(SLF4JLocationAwareLog.java:133)
at org.hibernate.cfg.reveng.dialect.JDBCMetaDataDialect.getTables(JDBCMetaDataDialect.java:26)
Line 26 in JDBCMetaDataDialect.getTables is simply
Code:
log.debug("getTables(" + catalog + "." + schema + "." + table + ")");
After digging through all the jars in the project classpath and Eclipse, it appears that this
Code:
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.debug(SLF4JLocationAwareLog.java:133)
is from a jar in my classpath. But the org.slf4j.spi.LocationAwareLogger class it is calling is not the version 1.6.1 in the project classpath, whose log method arguments looks like this:
Code:
Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;
But rather the org.slf4j.spi.LocationAwareLogger in the org.hibernate.eclipse_3.3.1.*\lib\hibernate Eclipse plugin directory, which is version 1.5.8 and whose log method lacks the Object argument:
Code:
Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;
So it would seem that either the class used in the Apache logging implementation needs to change from SLF4JLocationAwareLog to something else, or the jar used containing the LocationAwareLogger class needs to be the one in the project classpath.
How does that happen? Do I need to manually build the classpath used by Hibernate Tools by deleting the project classpath and adding the jars individually?
--Greg