技术开发 频道

基于Jazz技术构建企业级Web2.0应用(4)

    调用REST服务

    在Jazz架构模型中Jazz Web Client通过调用Rest Service和后端进行通信,其实质还是使用Ajax异步调用的方式,只不过Jazz做了一层封装,使得异步请求的代码书写更加简洁和通用。Jazz Web UI 通过TeamServerClient接口调用REST服务。例如上文Catalog.js的catalogAction方法调用PetStoreClient来处理REST请求,如果请求成功,则执行_success方法;否则执行 _error方法。PetStoreClient.js是TeamServerClient接口的具体实现如清单12所示:

    清单12.

dojo.provide("com.ibm.petstore.web.client.internal.PetStoreClient");

dojo.require("com.ibm.team.repository.web.transport.ServiceRequest");
dojo.require("com.ibm.team.repository.web.transport.TeamServerClient");

(function() {
    var ServiceRequest = com.ibm.team.repository.web.transport.ServiceRequest;
    var TeamServerClient = com.ibm.team.repository.web.transport.TeamServerClient;

    com.ibm.petstore.web.client.internal.PetStoreClient = {

        PETSTORE_SERVICE_URI: "com.ibm.petstore.common.service.rest.IPetStoreRestService",
   
    _invokeService: function(responseHandler, method, appArgs){
             var actualArgs= {};
             if (appArgs) {
                 var jsonArgs= dojo.json.serialize(appArgs);
                 actualArgs.jsonString= jsonArgs;
                 if(appArgs.category) {
                     actualArgs.category= appArgs.category;
                 }
             }
             var serviceRequest = new ServiceRequest(this.PETSTORE_SERVICE_URI, method, appArgs);
             TeamServerClient.invokeService(serviceRequest, responseHandler);
         },
   
         getAllCategoryDTOs: function(serviceResponseHandler, params){
             this._invokeService(serviceResponseHandler, "getAllCategoryDTOs", params);
         }
    };
})();

    PETSTORE_SERVICE_URI声明了将要调用的REST服务。请求参数是JavaScript对象。REST服务执行异步调用,将返回结果通过response handler传递给服务请求者。

    测试执行

    在Run->Run…中创建一个Jetty launcher,或者直接使用附录工程代码中的PetStore -Server Start.launch文件。在浏览器中输入http://localhost:9080/jazz/web/PetStore访问PetStore页面。其中"web/PetStore"对应于net.jazz.ajax.applications扩展点中所定义的application alias字段。执行结果为:


    图3. PetStore执行结果
 
总结

    本文以PetStore的用户界面开发为例,介绍了如何利用Jazz Ajax Framework开发胖客户端 Web UI的过程。通过对JAF的详细阐述和主要开发流程的介绍,可以帮助用户在Jazz平台上快速构建基于Web 2.0的企业级Web应用。

参考资料

    Writing a Jazz Web Hello World Page

    Using LeftNavigationLayout and TeamServerClient Interfaces

    Web UI Programming Model

0
相关文章