为什么每次在控制台中启动GlassFish 4.1时都会收到此消息。我的IDE是Eclipse Oxygen。我的JDK是java 8?
2018-05-01T23:39:53.272+0000|Grave: Exception while visiting META-INF/versions/9/org/apache/logging/log4j/util/StackLocator.class of size 7264
java.lang.IllegalArgumentException
at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:170)
at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:153)
at org.glassfish.hk2.external.org.objectweb.asm.ClassReader.<init>(ClassReader.java:424)
at org.glassfish.hk2.classmodel.reflect.Parser$5.on(Parser.java:358)
at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.handleEntry(ReadableArchiveScannerAdapter.java:165)
at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.onSelectedEntries(ReadableArchiveScannerAdapter.java:127)
at org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:344)
at org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:67)
at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:303)
at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
答案 0 :(得分:4)
您正在使用多发行jar格式的log4j2 2.9(或更高版本),并且包含java9特定的.class文件(如提到的META-INF/versions/9/org/apache/logging/log4j/util/StackLocator.class
),glassfish 4.1中包含的旧asm库无法理解。
尝试切换到log4j2 2.8