我试着描述我的问题。以下配置:
- 在 Servicemix 上,我有两个捆绑包:一个带有模型,第二个带有服务。模型包导出模型包,服务包从模型包中导入模型包。
- 在服务包中,我有具有一种服务方法的 Web 服务 (CXF):执行。此方法使用两个参数:第一个(String)是 javascript 文件的名称,第二个是参数的映射(HashMap)。该服务使用 javax.scipt.CompiledScript.eval(Bindings bindings) 执行 javascript 脚本。这个想法是在脚本语言中拥有业务逻辑。
- 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]
其中 Product 是模型包中的我的 Java 类,在第 4 行中,我尝试使用以下命令创建此对象:
var product = new Product();
而且,我认为,非常重要的信息:Servicemix 4.2.0 中的一切都很好。现在我必须升级到 4.3.1 并且不起作用(两个版本都来自 Fusesource)
有什么帮助吗?
问候, 雅克