ExtJS REST客户端无法从RESTful服务获取JSON数据

时间:2015-12-03 10:13:29

标签: javascript json rest extjs5

我是ExtJS 5的新手,这些代码是RESTEasy Restful Web Services。

RESTful Web服务

package com.aaa.rest;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;

@Path("/services")
public class RESTEasyServices {

   @GET
   @Path("getJson/{id}")
   @Produces("application/json")
   public Member sayJsonHello(@PathParam("id") String id){
      Member m = new Member();
      m.setId(id);
      m.setPasswd("aaa");
      m.setAge(45);
      m.setName("Joseph");

      return m;
   }
}

这些是Rest请求url和响应json数据。调用成功。

REST网址:http://localhost:8080/RESTfulTestWeb/rest/services/getJson/aupres

回应Json数据:{“id”:“aupres”,“passwd”:“aaa”,“age”:45,“name”:“joseph”}

问题是ExtJS Store对象客户端无法处理上面的json数据。这些是ExtJS客户端代码

index.js

Ext.define('extjs.model.Member', {
    extend: 'Ext.data.Model',

    fields : [{
        name : 'id',
        type : 'string'
    }, {
        name : 'passwd',
        type : 'string'
    }, {
        name : 'age',
        type : 'int'
    }, {
        name : 'name',
        type : 'string'
    }]  
});

Ext.onReady(function () {

    var members = Ext.create('Ext.data.Store', {

        model : 'extjs.model.Member',
        //autoLoad : true,
        proxy: {
            type: 'rest',
            url : 'http://localhost:8080/RESTfulTestWeb/rest/services/getJson/aupres',
            **reader: {
                type: 'json',
                rootProperty: 'id',
            },
            writer: {
                type: 'json'
            },**
            listeners: {
                exception: function(proxy, response, operation){
                    Ext.MessageBox.show({
                        title: 'REMOTE EXCEPTION',
                        msg: operation.getError(),
                        icon: Ext.MessageBox.ERROR,
                        buttons: Ext.Msg.OK
                    })
                }
            }

        },
        listeners: {
            load: function(members, operation, success) {
                if(success) {
                    alert('response : ' + members.model.length)
                } else {
                    alert('it failed')
                }
            }
        }
    })

    var onButtonClick = function() {
        members.load()
    }

响应如下所示

"response : 0"

似乎我的ExtJS代码无法包含json数据。我猜代理元素的reader和writer属性是错误的。但我不知道请求JSON数据的原因是什么。

0 个答案:

没有答案