Java 8(Open JDK)上で動作するWildfly 8.2.1で奇妙な動作に直面しています。私は特にJava 8について言及しています。なぜなら、この問題はJava 7では見られなかったからです。Wildfly 8.2 - サーバの起動時にScriptEngineManager.getEngineFactoriesが空です。
私のWildflyモジュールが起動している間、Java RhinoScriptEngineを使用してJavaScriptをロードするコードがあります。
List<ScriptEngineFactory> engineFactories = engineManager.getEngineFactories();
ScriptEngine scriptEngine = engineManager.getEngineByName("js");
scriptEngine
がnull
として割り当てられていたので、私は、デバッグログを添加しengineFactories
は(良く、engineFactories
自体のみデバッグ目的のためにフェッチされている)List
ちょうど空であることに気づきました。しかし、モジュールの起動が完了した後、この正確なコードが動作し、RhinoScriptEngineFactory
が表示されます。
Wildfly 8.2が認識していないJava 8で変更されたことがありますか、または明示的な依存関係をモジュールに追加する必要がありますか?
'' js "'の代わりに '' nashorn "'を使う必要があるかもしれません。あるいは、私は、 "javascript"はRhinoとNashornの両方で動作するかもしれないと思います。より確定的なことを申し訳なく思う。私は自分のコードが何をしているのか見ようとしています。 – Pointy
しかし、同じコードは、起動が完了した後、アプリケーションの別の機能を使って完全に動作します。また、Rhinoエンジンを使用します。 – aathif
はい、それは奇妙に思えます。 – Pointy