当前位置: 首页 > 面试题库 >

在类路径上检测到log4j-over-slf4j.jar和slf4j-log4j12.jar,从而抢占了StackOverflowError。

任文乐
2023-03-14
问题内容

xuggle library在项目中曾使用来转码来自的视频mp4 to flv。我也曾经用来slf4j libraries支持日志记录结束。

import com.xuggle.mediatool.IMediaReader;
import com.xuggle.mediatool.IMediaViewer;
import com.xuggle.mediatool.IMediaWriter;
import com.xuggle.mediatool.ToolFactory;

public class TranscodingExample {

    private static final String inputFilename = "E:\\VIDEO\\Facebook.mp4";
    private static final String outputFilename = "E:\\VIDEO\\Facebook.flv";

    public static void main(String[] args) {

        // create a media reader
        IMediaReader mediaReader = 
               ToolFactory.makeReader(inputFilename);

        // create a media writer
        IMediaWriter mediaWriter = 
               ToolFactory.makeWriter(outputFilename, mediaReader);

        // add a writer to the reader, to create the output file
        mediaReader.addListener(mediaWriter);

        // create a media viewer with stats enabled
        IMediaViewer mediaViewer = ToolFactory.makeViewer(true);

        // add a viewer to the reader, to see the decoded media
        mediaReader.addListener(mediaViewer);

        // read and decode packets from the source file and
        // and dispatch decoded audio and video to the writer
        while (mediaReader.readPacket() == null) ;

    }

}

在这里我得到一个错误

"Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError.".

我已将两个jar文件都用作库,以解决日志记录问题。有没有人遇到过同样的问题,如果这样的话,请写出解决这个问题的建议或解决方案。提前致谢。


问题答案:

因此,您必须排除冲突依赖性。试试这个:

<exclusions>
  <exclusion> 
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
  </exclusion>
  <exclusion> 
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
  </exclusion>
</exclusions>

这解决了slf4j和Dozer的相同问题。



 类似资料:
  • 我在我的项目中使用了,将视频从。我还使用了来支持日志结束。 这里我得到一个错误 为了解决日志记录问题,我使用了两个jar文件作为库。有没有人面临同样的问题。如果这样,请写建议或解决方案来摆脱这个混乱。提前感谢。

  • 我刚刚将我的spark应用程序插入了Cassandra。我用的是幻影卡桑德拉司机。 现在,在单元测试期间,我得到了以下错误 在类路径上检测到log4j-over-slf4j.jar和绑定slf4j-log4j12.jar 异常是在SparkCintext初始化期间抛出的,这是因为我的pom.xml中现在有了Phantom依赖项(Phantom与Spark发生直接冲突似乎很疯狂,但事实就是如此) 我

  • 从SLF4J页面我明白了这一点 slf4j-log4j12 模块的目的是将对 SLF4J 记录器的调用委托或重定向到 log4j。日志 4j 对 slf4j 模块的目的是将对日志4j 记录器的调用重定向到 SLF4J。如果 SLF4J 与 slf4j-log4j12.jar 绑定,并且类路径上也存在.jar,则在第一次调用 SLF4J 或 log4j 记录器后,将不可避免地立即发生堆栈溢出错误。

  • 我在maven项目中使用了SLF4J和log4j。当我在eclipse中用tomcat运行项目时,一切都正常,在maven中使用tomcat maven插件运行项目时。 但是当我把战争穿上我的tomcat正式服时,项目没有开始,给了我这个错误。 JAVAlang.IllegalStateException:检测到log4j-over-slf4j。jar和绑定slf4j-log4j12。类路径上的j

  • 问题内容: slf4j-log4j12和log4j-over- slf4j有 什么区别?什么时候应分别使用? 问题答案: 如果您的代码或正在使用的某些库直接使用Log4j,但要使用 与Log4j不同的SLF4J绑定 ,请使用此选项。它将Log4j API调用路由到SLF4J到您选择的绑定。您需要从类路径中删除Log4j库,并用此依赖项替换它。 如果 要对SLF4J使用Log4j 1.2绑定, 请使

  • 问题内容: 我正在尝试在JBoss7.1.1服务器中部署我的项目。但是我得到的信息不足,我的项目没有得到部署。 我正在使用Spring 3.1.1 Release jars。提前致谢。 问题答案: 在典型的servlet应用程序中,您将有一个描述符文件来声明应用程序的服务,过滤器,侦听器,上下文参数,安全性配置等。从Servlet 3.0开始,您可以通过编程方式完成大多数操作。 Servlet 3