我们有测试类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。对不起我的英文