我在我的pom文件中使用iText 7内核依赖项。但是,当我调用任何iText API时,我收到错误:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
要解决这个问题,我需要在我的pom文件中添加slf4j
依赖项。
为什么我必须在我的pom文件中添加itext内部使用的依赖项?不应该是itext有责任将slf4j作为依赖吗?
答案 0 :(得分:4)
首先,我不会称之为错误。这是信息或警告,但肯定不是错误。
其次,slf4j-api
依赖已经存在于您的类路径中。它是iText的依赖项,当您依赖iText时,它会以传递方式自动添加。如果你最初没有这种依赖,你实际上会得到一个错误,比如ClassNotFoundException
。
您不必添加任何依赖项。添加iText时,所有必需的内容都已经过期解决。如果您不需要记录并可以按照自己的意愿继续使用iText,则可以忽略此警告。
iText作为依赖项所具有的是用于日志记录实现的通用API,您可以自由选择是否要将任何日志信息呈现给您(有时候那里有非常有用的东西)。这个通用API今天实际上是一个标准。用户可以自由选择他想要使用的记录器实现(记录器抑制,打印到控制台,写入文件等)。 iText有责任为图书馆用户决定这一点。您看到的这三行信息仅提示您iText实际记录了一些可能对您有用的信息,您可以根据需要设置记录器输出。
一些常见的记录器绑定是:
您可以在Maven
上找到所有这些内容