SCA 之Tuscany 12——Tuscany JSON-RPC 实现

来源:互联网 发布:录音软件audition 编辑:程序博客网 时间:2024/04/28 02:17

学习地址:

http://json-rpc.org/  介绍JSON-RPC的各种语言包

http://java-json-rpc.sourceforge.net/   介绍HTTP Sever下的J2EE JSON-RPC编程模型

http://viralpatel.net/blogs/2008/12/calling-rpc-in-javascript-using-json-rpc-java.html   一个完整的JSON-RPC java实现 附有源码和war

http://tuscany.apache.org/sca-java-bindingjsonrpc.html    Tuscany中实现的binding用法

组件配置文件。Store中引用了Catalog

    <component name="Store">        <tuscany:implementation.widget location="uiservices/store.html"/>        <service name="Widget">        <tuscany:binding.http uri="/store"/>        </service><reference name="catalog" target="Catalog"/> <reference name="shoppingCart" target="ShoppingCart/Cart"/> <reference name="shoppingTotal" target="ShoppingCart/Total"/>    </component>    <component name="Catalog"><implementation.java class="services.FruitsCatalogImpl"/> <property name="currencyCode">USD</property><service name="Catalog"><tuscany:binding.jsonrpc uri="/Catalog"/>   </service><reference name="currencyConverter" target="CurrencyConverter"/></component> 


JSP中将Catalog初始化为object,就可以用它去调用自己的方法了。

<script type="text/javascript" src="../dojo/dojo.js"></script><script type="text/javascript" src="store.js"></script><script language="JavaScript">//@Referencevar catalog = new tuscany.sca.Reference("catalog");//@Referencevar shoppingCart = new tuscany.sca.Reference("shoppingCart");//@Referencevar shoppingTotal = new tuscany.sca.Reference("shoppingTotal");var catalogItems;function catalog_getResponse(items,exception) {if(exception){alert(exception.message);return;}var catalog = "";for (var i=0; i<items.length; i++) {var item = items[i].name + ' - ' + items[i].price;catalog += '<input name="items" type="checkbox" value="' + item + '">' + item + ' <br>';}document.getElementById('catalog').innerHTML=catalog;catalogItems = items;}function init() {try{catalog.get().addCallback(catalog_getResponse);}catch(e){alert(e);}}</script>