我们已经将我们的webapp停靠。该应用程序在所有平台上都按预期工作 - linux,mac等。
最近它开始在Mac上失败了。由于奇怪的NoClassDefFound / NoSuchMethodError异常,webapp无法启动。
api | Caused by: java.lang.NoSuchMethodError: org.apache.logging.log4j.ThreadContext.getThreadContextMap()Lorg/apache/logging/log4j/spi/ReadOnlyThreadContextMap;
api | at org.apache.logging.log4j.core.impl.ContextDataInjectorFactory.createDefaultInjector(ContextDataInjectorFactory.java:83)
api | at org.apache.logging.log4j.core.impl.ContextDataInjectorFactory.createInjector(ContextDataInjectorFactory.java:67)
api | at org.apache.logging.log4j.core.lookup.ContextMapLookup.<init>(ContextMapLookup.java:34)
api | at org.apache.logging.log4j.core.lookup.Interpolator.<init>(Interpolator.java:117)
api | at org.apache.logging.log4j.core.config.AbstractConfiguration.<init>(AbstractConfiguration.java:125)
api | at org.apache.logging.log4j.core.config.NullConfiguration.<init>(NullConfiguration.java:32)
api | at org.apache.logging.log4j.core.LoggerContext.<clinit>(LoggerContext.java:77)
api | at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.createContext(ClassLoaderContextSelector.java:171)
api | at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:145)
api | at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:70)
api | at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:57)
api | at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:147)
api | at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:45)
api | at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
api | at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:551)
在Centos上启动时,相同的泊坞窗图像完全正常。
我们完全不了解这种行为。任何见解都非常感谢。
Mac上的Docker版本
版本:17.09.0-ce API版本:1.32
Centos上的Docker版本
版本:1.12.6 API版本:1.24