SLF4J:无法加载 class "org.slf4j.impl.StaticLoggerBinder"。蚀
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". Eclipse
我知道这个问题已经被问过很多次了,但是 none 的答案是令人满意的。请原谅再次创建此线程。
我正在编写一个 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:无法加载 class "org.slf4j.impl.StaticLoggerBinder"。
google了一下发现和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();
在类路径和外部引用库中包含 "slf4j-nop-1.6.1.jar" 解决了这个问题。
我知道这个问题已经被问过很多次了,但是 none 的答案是令人满意的。请原谅再次创建此线程。
我正在编写一个 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:无法加载 class "org.slf4j.impl.StaticLoggerBinder"。
google了一下发现和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();
在类路径和外部引用库中包含 "slf4j-nop-1.6.1.jar" 解决了这个问题。