SLF4J:无法加载类" org.slf4j.impl.StaticLoggerBinder"。日食

时间:2016-08-31 13:09:45

标签: java xml eclipse maven slf4j

我知道这已被问过多次,但没有一个答案令人满意。请原谅再次创建这个帖子。

我正在编写一个java程序,将XML转换为ISO:8583。

我正在使用" slf4j-api-1.7.21.Jar" 和" j8583-1.11.0.jar"。

这是我的代码:

public class ExampleISOParser {

        private static BufferedReader reader;

        private static String getMessage() throws IOException {
            if (reader == null) {
                reader = new BufferedReader(new InputStreamReader(System.in));
            }
            System.out.println("Paste your ISO8583 message here (no ISO headers): ");
            return reader.readLine();
        }

        public static void main(String [] args) throws IOException, ParseException {

        try
        {
            final MessageFactory<IsoMessage> mf = new MessageFactory<IsoMessage>();
            if (args.length == 0) {
                ConfigParser.configureFromDefault(mf);
            } else {
                if (System.console() != null) {
                    System.console().printf("Attempting to configure MessageFactory from %s...%n", args[0]);
                }
                String url = args[0];
                if (url.contains("://")) {
                    ConfigParser.configureFromUrl(mf, new URL(args[0]));
                } else {
                    ConfigParser.configureFromUrl(mf, new File(url).toURI().toURL());
                }
            }
            //Now read messages in a loop
            String line = getMessage();
            while (line != null && line.length() > 0) {
                IsoMessage m = mf.parseMessage(line.getBytes(), 0);
                if (m != null) {
                    System.out.printf("Message type: %04x%n", m.getType());
                    System.out.println("FIELD TYPE    VALUE");
                    for (int i = 2; i <= 128; i++) {
                        IsoValue<?> f = m.getField(i);
                        if (f != null) {
                            System.out.printf("%5d %-6s [", i, f.getType());
                            System.out.print(f.toString());
                            System.out.println(']');
                        }
                    }
                }
                line = getMessage();
            }
        }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
        }

       }


}

跑步时我收到错误: SLF4J:无法加载类&#34; org.slf4j.impl.StaticLoggerBinder&#34;。

在谷歌上搜索我发现它与Maven有关。

但是我不确定这与Maven有什么关系,即使我试图将它转换为Eclipse中的Maven项目,但我仍面临着问题。

这就是我在堆栈跟踪中获得的全部内容。

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.

我试过调试,发现下面是导致错误的行。

final MessageFactory mf = new MessageFactory();

1 个答案:

答案 0 :(得分:0)

在类路径和外部参考库中包含“slf4j-nop-1.6.1.jar”解决了这个问题。