1

テスト クラス DocumentIndicatorTest があります。初期は @RunWith(MockitoJUnitRunner.class) で動作します。これを @RunWith(PowerMockRunner.class) で変更します。そして、ローカルPC(win7)で完璧に動作します。しかし、このスクリプトを Bamboo サーバー (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 がなくても大丈夫です。

問題点は new ScriptEngineManager().getEngineByName(engineType.name().toLowerCase()); です。

RhinoScriptEngine - IBM jdk のクラス、javascript.jar。ローカル PC と開発 PC の異なる jar バージョン (WebSphere バージョン) で問題が発生する可能性があります。

アイデアはありますが、どのように修正しますか?

PS私の英語でごめんなさい

4

0 に答える 0