gwt - Why doesn't GWTP allow Object (created by us) to pass through ActionHandler? -


ठीक है, परिदृश्य है।

मेरे पास है:

ग्राहक प्रस्तुति.जावा myproject.client पैकेज में।

GetCustomer.java myproject.client पैकेज में।

GetCustomerResult.java myproject.client पैकेज में।

ग्राहक.जावा myproject.shared पैकेज में।

GetCustomerActionHandler.java myproject.server पैकेज में।

इन सभी फ़ाइलों को eClipse द्वारा स्वचालित रूप से ग्राहक.जावा द्वारा उत्पन्न किया गया था जो कि स्वयं द्वारा बनाए गए थे।

CustomerPresenter.java : उपयोगकर्ता टेक्स्ट बॉक्स में ग्राहक विशेषताओं को दर्ज कर सकते हैं & amp; क्लिक बटन फिर सिस्टम को ऐसे ग्राहकों को खोजना चाहिए जो प्रदान की गई विशेषताओं से मेल खाती हैं।

GetCustomer.java ग्राहक विशेषताओं जैसे कि setCustomerName & amp; getCustomerNames , setEmail .. आदि

GetCustomerResult.java में सेट ग्राहक (ग्राहक) & amp; getCustomer (); // साझा पैकेज से ग्राहक

GetCustomerActionHandler.java से कनेक्ट करें डीबी & amp; नाम का चयन करें, ईमेल ... तो ग्राहक को इन सूचनाओं को पास करें Ex:

GetCustomerActionHandler.java

  @ ओवरराइड सार्वजनिक GetCustomerResult निष्पादित (GetCustomer कार्रवाई, ExecutionContext संदर्भ) ActionException फेंकता {स्ट्रिंग sql = "चुनें नाम, ईमेल ... से ग्राहक..."; ..... स्ट्रिंग का नाम = dbResults.getString (1); ग्राहक ग = नया ग्राहक (); c.setName (नाम); GetCustomerResult getCustomerResult = नया GetCustomerResult (); getCustomerResult.setCustomer (ग); वापसी प्राप्त ग्राहक ग्राहक परिणाम; }   

लेकिन भागने के बाद, मुझे यह गलती हुई:

 बंदरगाह पर 8888 [वॉर्न] की शुरूआत करते हुए आने वाली आरपीसी कॉल को भेजते समय com.google.gwt.user। client.rpc.SerializationException: प्रकार 'myproject.shared.Customer' को उन प्रकारों के सेट में शामिल नहीं किया गया था जिन्हें इस सीरियललाइजेशन पॉलिसी द्वारा सीरियल किया जा सकता है या इसके क्लास ऑब्जेक्ट को लोड नहीं किया जा सकता है। सुरक्षा प्रयोजनों के लिए, इस प्रकार को सीरियलकृत नहीं किया जाएगा: उदाहरण = myproject.shared.Customer@31e4aa02 com.google.gwt.user.server.rpc.impl.SherverSerializationStreamWriter.serialize पर (ServerSerializationStreamWriter.java:665) com.google पर .gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject (AbstractSerializationStreamWriter.java:126) ......  

यदि हम सर्वर स्तर पर ऑब्जेक्ट में डेटा नहीं डालते हैं तो हमें इसे ग्राहक स्तर पर रखें, लेकिन यह कोड को बोझिल बना देगा।

शायद हम ग्राहक को सीरियलाइज कर सकते हैं या ऐसा कुछ कर सकते हैं ... लेकिन मुझे उस तकनीक के बारे में पता नहीं है।

ऐसा क्यों हुआ? क्या आप इसे ठीक करने के लिए जानते हैं?

आपका ग्राहक वर्ग को IsSerializable के रूप में लागू करना चाहिए

  सार्वजनिक श्रेणी के ग्राहक उपकरण IsSerializable {...}   

यदि अभी भी यह काम नहीं करता है तो कोशिश करें

  सार्वजनिक श्रेणी के ग्राहक उपकरण IsSerializable, Serializable {...}   

अधिक जानकारी के लिए देखें।

Comments

Popular posts from this blog

c# - passing input text from view to contoller with FacebookContext using Facebook app -

ios - Does Core Data autoupdate a many to many relationship on saving -

Calling a C++ function from C# by passing a string with variable size to it -