这JavaScript HTML 文件中的代码可以使用 Tuscany Widget 实现中定义的服务组件架构 (SCA) 引用。 使用窗口小部件实现来处理 SCA 服务在 JavaScript 中返回的 Atom 集合数据。
可以在 SCA 应用程序中使用 Atom 绑定,以将数据集合公开为 Atom 订阅源,或引用现有外部 Atom 订阅源。 如果您不熟悉 Atom 协议,请参阅有关“Atom 联合格式”(用于描述 Web 订阅源的基于 XML 的文档格式)以及“Atom 发布协议”(用于发布和更新 Web 资源)的文档。
有关此任务
SCA 组件可以定义 SCA 引用,供在 JavaScript 代码中使用。 使用 Tuscany 窗口小部件实现来定义引用。 此实现支持那些使用 Atom 绑定的引用,但不支持对 SCA 服务进行定义。
必须在 Web 应用程序归档 (WAR) 文件中部署使用窗口小部件实现的 SCA 组合。
- 在 SCA 组合定义中配置窗口小部件实现。
为使用 Tuscany implementation.widget 的组件创建 SCA 组合定义文件。 例如:
<composite>
<component name="Store">
<tuscany:implementation.widget location="ui/store.html"/>
<reference name="shoppingCart">
<tuscany:binding.atom uri="/ShoppingCart/Cart"/>
</reference>
</component>
</composite>
此示例定义了一个使用 Tuscany 的 Store 组件implementation.widget在 HTML 文件中ui/store.html。
- 在 HTML 文件中启用 SCA 引用。
在 HTML 文件 ui/store.html 中,定义两个必需的脚本元素来启用 SCA 引用。 对第一个元素指定以下内容:
<script type="text/javascript>>
dojo.registerModulePath("tuscany", "/Store/tuscany");
dojo.require("tuscany.AtomService");
</script>
在使用 Atom 绑定引用时,此定义是必需的。 dojo.registerModulePath 方法告知 dojo 对象在 Tuscany 名称空间中的何处查找需求。 第一个自变量始终是 "tuscany"。 第二个自变量以格式 /SCA_component_name/tuscany 指定。 "tuscany.AtomService" 的 dojo.require 语句会促使浏览器从 /Store/tuscany/AtomService.js 文件中装入 JavaScript 文件。 产品会动态生成此 JavaScript 文件以将 Atom 绑定引用连接到 Atom 服务。
对第二个元素指定以下内容:
<script type="text/javascript" src="/Store/store.js"></script>
在任何用作窗口小部件实现组件的 HTML 文件中,此定义是必需的。 对于脚本src属性,以以下格式指定统一资源标识符 (URI) /SCA_component_name/modified_implementation.widget_location_attribute ; 例如,/Store/store.js 。 此修改的位置属性是不带前导路径但带有文件扩展名 .js 的窗口小部件实现位置属性。
- 在 HTML 文件中使用 JavaScript 来定义 SCA 引用。
包含前一示例引用的 HTML 文件可能类似于:
//@Reference
var catalog = new tuscany.sca.Reference("shoppingCart");
//@Reference 注释是必需的。 SCA 运行时会以 Java 类解释 @Reference 标记的相同方式,解释该注释。
- 使用 JavaScript 来操作订阅源引用。
例如,为了检索整个订阅源,HTML 文件可使用以下示例代码:
var items = shoppingCart.get("");
为了检索单一条目,实现可调用:
var item = shoppingCart.get("Item1");
为了将新条目添加到订阅源,HTML 文件可使用以下示例代码:
var entry =
'<entry xmlns="https://www.w3.org/2005/Atom"><title>item</title><content type="text/xml">'
+ '<Item xmlns="http://services/">' + <name xmlns="">' + itemName + '</name>'
+ '<price xmlns="">' + itemPrice + '</price>' + '</Item>' + '</content></entry>';
shoppingCart.post(entry);
下一步做什么?
在应用程序中部署 SCA 组件。
有关其他示例,请参阅“在 JavaScript 中将窗口小部件实现与 Atom 或 HTTP 绑定配合使用”主题。