3

当我包含hibernate-c3p0在我的 Mavenpom.xml文件中时,我得到一个运行时NoClassDefFoundError,因为它找不到org.slf4j.impl.StaticLoggerBinder. 我的印象是 Maven 会解决这种依赖关系——所以如果 c3p0 需要 slf4j,那么 slf4j 将被下载并包含在内。

我的pom.xml文件有:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-c3p0</artifactId>
  <version>3.3.1.GA</version>
</dependency>
4

2 回答 2

5

可能 slf4j 是一个可选的依赖项。您可以使用依赖插件非常轻松地检查传递依赖项

mvn dependency:tree

将向您显示具体取决于什么的树状列表。如果 slf4j 不是一个 dep,你可以明确地添加它。

高温高压

于 2009-05-29T04:17:44.770 回答
4

NoClassDefFoundErrorfororg.slf4j.impl.StaticLoggerBinder表示找不到 SLF4J 绑定。通过传递性,hibernate-c3p0 依赖于 slf4j-api。但是,slf4j-api 不能在没有绑定的情况下运行。详见 SLF4J 用户手册:www.slf4j.org/manual.html

您只需添加 slf4j-simple、slf4j-log4j12、slf4j-jdk14 或 logback-classic 之一作为依赖项。前面提到的 SLF4J 手册页应该有详细信息。

于 2009-05-29T08:56:29.443 回答