2015-04-21 6 views
5

समझने जैसा कि आप नीचे देखें, तो मेरी पेलोड सर्वर करने जा रहा है, जब मैं अपने आवेदनGWT अनुरोध पेलोड

7|0|14|http://domain.com/ager-online/tracklay/|7FCCBC6F7B44BB2BEB84AAB8B47DB2E4|com.d.g4.consumer.w.client.rpcservice.ConsumerService|placeService|java.util.List|java.util.ArrayList/4159755760|co.g.consumer.wager.client.model.ConsumernseType/2494043886|java.lang.Double/858496421|java.lang.Integer/3438268394|2|1|WIN|java.lang.Long/4227064769|java.util.Date/3385151746|1|2|3|4|1|5|6|1|7|8|2|8|2|9|1|10|11|11|12|13|Co3|14|**Uzc1OKs**|9|309158|-5|

मैं अपने जा रहा है धारावाहिक और सर्वर से डेटा भेजने जानते में एक RPC कॉल कर दिया। मैं जो जानना चाहता हूं वह मध्य में चाबियाँ है। जैसे Uzc1OKs मैंने उन्हें अनुरोध में चिह्नित किया।

वास्तव में वे क्या हैं?

कोई विचार?

+1

कृपया आप जिस दूरस्थ प्रक्रिया को कॉल कर रहे हैं उसका विधि हस्ताक्षर जोड़ें। – Baz

+1

क्या आपने इस प्रश्न से पूछने से पहले कोई शोध किया है? जीडब्ल्यूटी ओपन सोर्स है और इसे "अपराधी" को ट्रैक करना बहुत आसान होना चाहिए - जीडब्ल्यूटी कंपाइलर द्वारा अपने '* असिंक' इंटरफेस से उत्पन्न कक्षाओं की जांच करें, देखें कि कक्षाओं का उपयोग किस प्रकार किया जाता है और जब तक आपको क्रमबद्धता योजना नहीं मिल जाती तब तक निशान का पालन करें । या गूगल के आसपास ... –

उत्तर

1

आप क्लाइंट पर निम्नलिखित तरीके से GWT RPC उपयोग कर सकते हैं:

एक सेवा

private void refreshWatchList() { 
    final double MAX_PRICE = 100.0; // $100.00 
    final double MAX_PRICE_CHANGE = 0.02; // +/- 2% 

    StockPrice[] prices = new StockPrice[stocks.size()]; 
    for (int i = 0; i < stocks.size(); i++) { 
     double price = Random.nextDouble() * MAX_PRICE; 
     double change = price * MAX_PRICE_CHANGE 
      * (Random.nextDouble() * 2.0 - 1.0); 

     prices[i] = new StockPrice(stocks.get(i), price, change); 
    } 

    updateTable(prices); 
    } 

बनाना सेवा

को परिभाषित करना
@RemoteServiceRelativePath("stockPrices") 
public interface StockPriceService extends RemoteService { 

     StockPrice[] getPrices(String[] symbols); 
} 

सेवा

public class StockPriceServiceImpl extends RemoteServiceServlet implements StockPriceService { 

    public StockPrice[] getPrices(String[] symbols) { 
     // TODO Auto-generated method stub 
     return null; 
    } 
} 

ग्राहक से सेवा लागू लागू करने और दूरस्थ प्रक्रिया कॉल कर:

private ArrayList<String> stocks = new ArrayList<String>(); 
private StockPriceServiceAsync stockPriceSvc = GWT.create(StockPriceService.class); 

private void refreshWatchList() { 
    // Initialize the service proxy. 
    if (stockPriceSvc == null) { 
     stockPriceSvc = GWT.create(StockPriceService.class); 
    } 

    // Set up the callback object. 
    AsyncCallback<StockPrice[]> callback = new AsyncCallback<StockPrice[]>() { 
     public void onFailure(Throwable caught) { 
     // TODO: Do something with errors. 
     } 

     public void onSuccess(StockPrice[] result) { 
     updateTable(result); 
     } 
    }; 

    // Make the call to the stock price service. 
    stockPriceSvc.getPrices(stocks.toArray(new String[0]), callback); 
} 

यह मूलतः क्या आरपीसी किया जाता है।

आपका

बीच

में चाबियाँ शायद क्रमबद्धता की अपनी वस्तुओं परिणाम है। यदि आपको यह पसंद नहीं है तो आप जीडब्ल्यूटी RequestBuilder का भी उपयोग कर सकते हैं।

RequestBuilder requestBuilder = new RequestBuilder(requestMethod, url); 
requestBuilder.setHeader("Content-Type", "application/json"); 
requestBuilder.setRequestData(bodyString); 
requestBuilder.setCallback(new RequestCallback() { 

     @Override 
     public void onResponseReceived(Request request, Response response) { 
     callback.onResponse(response.getStatusCode(), response.getText()); 
     } 

     @Override 
     public void onError(Request request, Throwable exception) { 
     callback.onError(new Exception(exception)); 
     } 
    }); 

    try { 
     requestBuilder.send(); 
    } 
    catch(RequestException ex) { 
     callback.onError(ex); 
    } 

RequestBuilder का उपयोग करते समय आपके पास प्रारूप का अधिक नियंत्रण होता है और क्या परिवहन किया जा रहा है।

0

जीडब्ल्यूटी प्रोटोकॉल बफर का उपयोग डिफ़ॉल्ट रूप से एक क्रमबद्ध तंत्र के रूप में करता है। आप यहां और अधिक पा सकते हैं: Protocol Buffers

संबंधित मुद्दे