使用JDK自带java.util.logging.Logger引起的冲突问题

现象:

        应用代码如下:

import javax.script.ScriptEngineManager;

ScriptEngineManager manager = new ScriptEngineManager();
manager.getEngineByName("JavaScript");

在TongWeb8上运行出错,日志如下:

Servlet.service() for servlet [aaa] in context with path [web] threw exception [Servlet execution threw an exception] with root cause java.lang.NullPointerException
	at java.lang.invoke.MethodHandles.insertArgumentsChecks(MethodHandles.java:2400)
	at java.lang.invoke.MethodHandles.insertArguments(MethodHandles.java:2369)
	at jdk.nashorn.internal.lookup.MethodHandleFactory.addDebugPrintout(MethodHandleFactory.java:287)
	at jdk.nashorn.internal.lookup.MethodHandleFactory$StandardMethodHandleFunctionality.debug(MethodHandleFactory.java:376)
	at jdk.nashorn.internal.lookup.MethodHandleFactory$StandardMethodHandleFunctionality.findStatic(MethodHandleFactory.java:543)
	at jdk.nashorn.internal.lookup.Lookup.findOwnMH(Lookup.java:225)
	at jdk.nashorn.internal.lookup.Lookup.(Lookup.java:54)
	at jdk.nashorn.internal.codegen.CompilerConstants.staticCall(CompilerConstants.java:579)
	at jdk.nashorn.internal.runtime.JSType.(JSType.java:82)



Servlet.service() for servlet [aaa] in context with path [web] threw exception [Servlet execution threw an exception] with root cause java.lang.NoClassDefFoundError: Could not initialize class jdk.nashorn.internal.lookup.MethodHandleFactory
	at jdk.nashorn.internal.runtime.Context.initLoggers(Context.java:1404)
	at jdk.nashorn.internal.runtime.Context.(Context.java:549)
	at jdk.nashorn.internal.runtime.Context.(Context.java:466)
	at jdk.nashorn.api.scripting.NashornScriptEngine$1.run(NashornScriptEngine.java:129)
	at jdk.nashorn.api.scripting.NashornScriptEngine$1.run(NashornScriptEngine.java:125)
	at java.security.AccessController.doPrivileged(Native Method)
	at jdk.nashorn.api.scripting.NashornScriptEngine.(NashornScriptEngine.java:125)
	at jdk.nashorn.api.scripting.NashornScriptEngineFactory.getScriptEngine(NashornScriptEngineFactory.java:148)
	at javax.script.ScriptEngineManager.getEngineByName(ScriptEngineManager.java:238)

原因及解决办法:

         TongWeb8接管了java.util.logging.Logger日志,可以关闭 “接管 Java Logger”  来解决。

使用JDK自带java.util.logging.Logger引起的冲突问题_第1张图片

你可能感兴趣的:(java)