/ / GWT अनुरोध कारखाना - एक अन्य अनुरोध की सफलता पद्धति के अंदर आग अनुरोध - जावा, gwt, अनुरोध, ग्राहक-सर्वर, अनुरोध

GWT अनुरोध कारखाना - एक अन्य अनुरोध की सफलता पद्धति के अंदर आग अनुरोध - जावा, gwt, अनुरोध, क्लाइंट-सर्वर, अनुरोध

मैं दो निवेदन करने के लिए कोशिश कर रहा हूँ कारखाने में कॉलएक दूसरे। मैं एक पोस्ट ऑब्जेक्ट को पुनः प्राप्त करता हूं और सफलता-पद्धति में मैं उसी ऑब्जेक्ट का फिर से उपयोग करता हूं (बस परीक्षण के प्रयोजनों के लिए, मुझे अन्य अनुरोध के लिए समान व्यवहार मिलता है जैसे उदाहरण के लिए स्थायी)।

समस्या यह है: केवल पहला अनुरोध सर्वर तक पहुंचता है।

मुझे कोई त्रुटि संदेश नहीं मिला। यदि मैं कोड डिबग करता हूं, तो दूसरा अनुरोध निकाल दिए जाने तक सब कुछ काम करता है। तब कुछ नहीं होता है। बैकएंड पर विधि को नहीं कहा जाता है, दृश्यपटल कोई त्रुटि नहीं दिखाता है, भले ही मैं दूसरे अनुरोध के रिसीवर के लिए "onFailure" -method को लागू करता हूं।

public class RequestFactoryFindTest extends GWTTestCase{

/**
* must refer to a valid module that sources this class.
*/
public String getModuleName() {
return "com.Test.MyTest";
}

public void test(){
final ClientFactory clientFactory = GWT.create(ClientFactoryImpl.class);
final MyRequestFactory requestFactory = clientFactory.getRequestFactory();
final PostRequest request = requestFactory.postRequest();


request.findPost(1l).fire(new Receiver<PostProxy>() {

@Override
public void onSuccess(PostProxy response) {


final ClientFactory clientFactory = GWT.create(ClientFactoryImpl.class);
final MyRequestFactory requestFactory = clientFactory.getRequestFactory();
final PostRequest request = requestFactory.postRequest();

System.out.println("outer success");

request.findPost(1l).fire(new Receiver<PostProxy>() {

@Override
public void onSuccess(PostProxy response) {
System.out.println("inner success");

}

});

}
});


}
}

क्या कोई इसे समझा सकता है?

संपादित करें:

मैंने बहुत सी चीजों की कोशिश की जैसे किसी घटना को आग देनाईवेंट बस, ईवेंट को पकड़ें और वहां मेरे आंतरिक अनुरोध कारखाने को कॉल करें। लेकिन कुछ भी काम नहीं आया। मुझे लगता है कि यह अनुरोध के साथ संयोजन में GWTTestcase के साथ कुछ समस्या है। मैंने अपना कोड भी बदल दिया है, इसलिए मैं केवल एक क्लाइंटफैक्ट्री का उपयोग करता हूं।

उत्तर:

उत्तर № 1 के लिए 1

पहले onSuccess विधि में कोई ईवेंट बनाने का प्रयास करें। जब आपका ईवेंट संभाला जाता है, तो आप सर्वर को दूसरा अनुरोध भेज सकते हैं। चेक आउट GWT EventBus का उपयोग कैसे करें Eventbus का उपयोग करने के लिए।

थॉमस ब्रियर का कथन भी सही है। आपको केवल एक RequestFactory और एक ClientFactory का उपयोग करना चाहिए!


उत्तर № 2 के लिए 1

जब आप निर्माण कर रहे हों तो यह एक समस्या हो सकती हैथॉमस ब्रोयर के अनुसार आपका दूसरा ग्राहक कारखाना। आपको संभवतः अपने ClientFactory.java इंटरफ़ेस में जाना चाहिए और शीर्ष पर एकल क्लाइंट फ़ैक्टरी उदाहरण जोड़ें। इसके अलावा GWT.log ("ON SUCCESS") को अपने onSuccess (PostProxy प्रतिक्रिया) के शीर्ष पर रखें ताकि यह सुनिश्चित हो सके कि यह वहां हो रहा है।

public interface ClientFactory {

public static final ClientFactory INSTANCE = GWT.create(ClientFactory.class);
...

तो आप निम्नलिखित की तरह कुछ कर सकते हैं

    final PostRequest request = ClientFactory.INSTANCE.getRequestFactory().postRequest();