2016-08-31 5 views
0

Я знаю, что это задавали много раз, но ни один из ответов не был удовлетворительным. Прошу прощения за создание этой темы еще раз.SLF4J: Не удалось загрузить класс «org.slf4j.impl.StaticLoggerBinder». Eclipse

Я пишу программу 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: Не удалось загрузить класс "org.slf4j.impl.StaticLoggerBinder".

На гуглинг я обнаружил, что это как-то связано с Maven.

Но я не уверен, как это связано с Maven, хотя я пытался преобразовать его в проект Maven в Eclipse, но все же я столкнулся с проблемой.

Это все, что я получаю в stacktrace.

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();

+0

Добавить полный stacktrace – Jens

+0

Я обновил деталь. Также "final MessageFactory mf = new MessageFactory ();" это строка, вызывающая ошибку –

+0

У вас есть файл log4j.properties в вашем пути к классам? – Jens

ответ

0

Включая «slf4j-nop-1.6.1.jar» в пути к классам и внешние справочные библиотеки, решили проблему.