Glassfish服务器启动时发生异常

Art*_*gue 0 java eclipse glassfish

为什么每次在控制台中启动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)
Run Code Online (Sandbox Code Playgroud)

Til*_*hcy 5

您正在使用log4j2 2.9(或更高版本),它是多发行版jar格式,并且包含META-INF/versions/9/org/apache/logging/log4j/util/StackLocator.classglassfish 4.1中包含的旧asm库无法理解的java 9特定.class文件(如上述)。尝试切换到log4j2 2.8