2013-04-03 61 views
0

我試圖描述我的問題。以下配置:Javascript和從其他包的軟件包中的類

  1. On Servicemix我有兩個捆綁:一個模型,第二個服務。模型包導出模型包,服務包從模型包導入模型包。
  2. 在服務包中,我有一個服務方法的Web服務(CXF):執行。此方法使用兩個參數:第一個(String)是JavaScript文件的名稱,第二個是參數的映射(HashMap)。該服務使用javax.scipt.CompiledScript.eval(綁定綁定)執行javascript腳本。這個想法是在腳本語言中擁有業務邏輯。
  3. JavaScript的腳本有通過訪問Java對象:

A /綁定 - 沒有問題。我在腳本中看到所有使用bindings.put(name,object)添加的對象的實例

b/importPackage(Packages.my.java.package.from.model.bundle) - 現在我遇到了問題:當我嘗試從關鍵字「new」的模型包中創建JavaScript Java對象時,出現以下錯誤:

com.google.code.scriptengines.js.util.ExtendedScriptException類:org.mozilla.javascript.EcmaError:ReferenceError :「產品」未定義。 (#4)[4]文件

,其中產品是從模型包和第4行中我的Java類,我試圖創建該對象:

var product = new Product(); 

而且,我認爲,非常重要的信息:在Servicemix 4.2.0中一切正常。現在我必須升級到4.3.1並且不起作用(這兩個版本來自Fusesource)

任何幫助?

問候, 亞切克

回答

0

好像腳本引擎束不具有包可見你的產品包裝。

您可以嘗試啓用捆動態進口與腳本引擎

list | grep -i javascript 

然後找到與發動機捆例如

捆綁ID,如

然後用

dev:dynamic-import ID of that bundle 

如果未找到更改,您可能需要重新啓動ESB。

+0

它是一個JavaScript包的問題。已經創建了一張票來解決這個問題:https://issues.apache.org/jira/browse/SM-2200 –

相關問題