在上下文PowerMockRunner中运行测试时出现ExceptionInInitializerError

时间:2016-08-02 11:48:21

标签: javascript java powermock ibm-jdk

我们有测试类DocumentIndicatorTest。早期它与@RunWith(MockitoJUnitRunner.class)一起使用。现在我们在@RunWith(PowerMockRunner.class)上更改它。它完美地适用于本地电脑(win7)。但是当这个脚本在竹子服务器(linux)上运行时,它失败了:

java.lang.ExceptionInInitializerError: null
        at sun.org.mozilla.javascript.internal.ContextFactory.initGlobal(ContextFactory.java:196)
        at com.sun.script.javascript.RhinoScriptEngine.<clinit>(RhinoScriptEngine.java:49)
        at java.lang.J9VMInternals.initializeImpl(Native Method)
        at java.lang.J9VMInternals.initialize(J9VMInternals.java:236)
        at com.sun.script.javascript.RhinoScriptEngineFactory.getScriptEngine(RhinoScriptEngineFactory.java:57)
        at javax.script.ScriptEngineManager.getEngineByName(ScriptEngineManager.java:226)
        at ru.blogic.lecm.common.scripting.ScriptExecutorImpl.getEngine(ScriptExecutorImpl.java:28)
        at ru.blogic.lecm.common.scripting.ScriptExecutorImpl.addScript(ScriptExecutorImpl.java:39)
        at ru.blogic.lecm.util.js.CommandResolverJsImpl.resolveScript(CommandResolverJsImpl.java:53)
        at ru.blogic.lecm.util.js.CommandResolverJsImpl.resolve(CommandResolverJsImpl.java:70)
        at ru.blogic.lecm.util.DocumentIndicatorTest.assertResultCode(DocumentIndicatorTest.java:1226)
        at ru.blogic.lecm.util.DocumentIndicatorTest.resolutionHasReportTest(DocumentIndicatorTest.java:125)
        at ru.blogic.lecm.util.DocumentIndicatorTest.resolutionHasExecutionReportTest(DocumentIndicatorTest.java:184)

java.lang.NoClassDefFoundError: com.sun.script.javascript.RhinoScriptEngine (initialization failure)
        at sun.org.mozilla.javascript.internal.ContextFactory.initGlobal(ContextFactory.java:196)
        at com.sun.script.javascript.RhinoScriptEngine.<clinit>(RhinoScriptEngine.java:49)
        at java.lang.J9VMInternals.initializeImpl(Native Method)
        at java.lang.J9VMInternals.initialize(J9VMInternals.java:236)
        at com.sun.script.javascript.RhinoScriptEngineFactory.getScriptEngine(RhinoScriptEngineFactory.java:57)
        at javax.script.ScriptEngineManager.getEngineByName(ScriptEngineManager.java:226)
        at ru.blogic.lecm.common.scripting.ScriptExecutorImpl.getEngine(ScriptExecutorImpl.java:28)
        at ru.blogic.lecm.common.scripting.ScriptExecutorImpl.addScript(ScriptExecutorImpl.java:39)
        at ru.blogic.lecm.util.js.CommandResolverJsImpl.resolveScript(CommandResolverJsImpl.java:53)
        at ru.blogic.lecm.util.js.CommandResolverJsImpl.resolve(CommandResolverJsImpl.java:70)
        at ru.blogic.lecm.util.DocumentIndicatorTest.assertResultCode(DocumentIndicatorTest.java:1226)
        at ru.blogic.lecm.util.DocumentIndicatorTest.resolutionHasReportTest(DocumentIndicatorTest.java:125)
        at ru.blogic.lecm.util.DocumentIndicatorTest.resolutionHasExecutionReportTest(DocumentIndicatorTest.java:184)

没有powerMockito一切都好。

问题点是新的ScriptEngineManager()。getEngineByName(engineType.name()。toLowerCase());.

RhinoScriptEngine - 来自IBM jdk的类, javascript.jar 。可能是本地和开发人员的不同jar版本(WebSphere版本)中的问题。

有想法,如何解决?

P.S。对不起我的英文

0 个答案:

没有答案