2011-11-23 49 views
4

以下代碼返回一個空數組。ScriptEngineManager.getEngineFactories返回appengine上沒有工廠

import javax.script.Invocable; 
import javax.script.ScriptEngine; 
import javax.script.ScriptEngineFactory; 
import javax.script.ScriptEngineManager; 
import javax.script.ScriptException; 

ScriptEngineManager manager = new ScriptEngineManager(); 
List<ScriptEngineFactory> factories = manager.getEngineFactories(); 

它的工作原理在開發環境中,而不會出動。
即使在將js.jar從rhino添加到lib文件夾並將其添加到類路徑後,也沒有找到EngineFactories。

我在做什麼錯?

+0

我猜你正在使用Rhino,但你不會說。您需要明確提及您使用的庫,並顯示您的導入。 –

+0

@尼克約翰遜呀,犀牛。我以爲我確實提到過。 –

+0

即時運行到相同的問題。任何人都有這個運氣? – Sam

回答

2

GAE是非常優化的Java運行時。即使ScriptEngineManager位於受支持類的白名單中,仍然有一個設置可以使其工作。

您需要註冊犀牛服務,我有線索來存檔但不完全。 要註冊服務,您必須使用實現'ScriptEngineFactory'接口的Rhino類的類名稱,以一行創建文件'META-INF/services/javax.script.ScriptEngineFactory'。而我的問題是我找不到這些課程。

如果有人知道請編輯。