2009-08-03 15 views

उत्तर

0

जीडब्ल्यूटी रेल की तरह एक पूर्ण अनुप्रयोग ढेर नहीं है, इसलिए आपको रेल के रूप में एकीकृत और बॉक्स के बाहर एक समाधान नहीं मिल सकता है। जीडब्ल्यूटी मुख्य रूप से एक दृश्य परत है - आपको अभी भी एक स्थिरता परत की आवश्यकता होगी।

+0

मैं समझता हूं, लेकिन यह मेरे लिए दृढ़ता परत के लिए एक और ढांचे के साथ बंडल करना ठीक होगा। – Otavio

3

Spring Roo Google I/O 2010 में घोषित किया गया था। यह हो सकता है कि आप जो खोज रहे हैं।

+0

+1, स्प्रिंग रू शायद आप जो खोज रहे हैं। यह [जीडब्ल्यूटी साइट] में भी उल्लेख किया गया है (http://code.google.com/webtoolkit/doc/latest/ReleaseNotes.html#MvpFramework)। हालांकि, इसे काम करने के लिए जीडब्ल्यूटी 2.1 की आवश्यकता है। – Piotr

+0

[यहां] (http://www.youtube.com/watch?v=GQHlhIIxCIc) आप स्प्रिंग रू और जीडब्ल्यूटी एकीकरण की Google I/O प्रस्तुति पा सकते हैं। – Piotr

1

वसंत 8.6 एम 2 के लिए MyEclipse अभी जारी किया गया था और अब इसमें जीडब्ल्यूटी मचान है।

आप download a free 30 day trial here कर सकते हैं।

+0

वास्तव में अद्भुत लग रहा है – Xorty

0

जीडब्ल्यूटी बहुत कम आईएमओ को हल करने वाली सभी पाठ्यपुस्तक सीआरयूडी ढांचे की तुलना में एक अलग प्रतिमान का उपयोग करता है। इसे एक अच्छे पुराने स्विंग के रूप में सोचें। संचार पहले से ही अंतर्निहित है (जीडब्ल्यूटी-आरपीसी)। इसे सुधारने का एकमात्र तरीका - उन सीआरयूडी ढांचे में से कोई भी ऑफर नहीं करता है - कुछ पैटर्न (आपका खुद का अमीर विजेट सेट इत्यादि) बनाना होगा जो कुछ एकीकृत डेटा पर काम करता है। और निश्चित रूप से सर्वर पर मिलान कोड। इस तरह आप उन सभी इंटरफेस में लाखों तरीकों से डेटा पास करने के लिए जेनेरिक जीडब्ल्यूटी-आरपीसी विधियों और सामान्य डेटा संरचनाओं का उपयोग कर सकते हैं। अन्यथा जीडब्ल्यूटी-आरपीसी उतना ही अच्छा है जितना कि किसी भी सामान्य सीआरयूडी "ढांचे" के रूप में "सेवा मुखौटा" में उन लाखों तरीकों का होगा।

एक चीज जो आप कर सकते हैं वह है स्प्रिंग एमवीसी के साथ जीडब्ल्यूटी-आरपीसी को "एकीकृत" करना। कोड की केवल कुछ पंक्तियां - और आप अपनी जीडब्ल्यूटी-आरपीसी सेवाओं को मानक स्प्रिंग @ कंट्रोलर के रूप में कार्यान्वित कर सकते हैं। उनके पास सभी स्वायत्त घटकों आदि तक पहुंच होगी, आपको और क्या चाहिए? आप वसंत के माध्यम से बिल्कुल कुछ भी प्राप्त कर सकते हैं।

तो यहाँ है तुम कैसे करते:

public abstract class GwtRpcController extends RemoteServiceServlet implements Controller, ServletConfigAware { 
private static Log log = LogFactory.getLog(GwtRpcController.class); 

private ServletConfig servletConfig; 

@Override 
public ServletConfig getServletConfig() { 
    return servletConfig; 
} 

@Override 
public void setServletConfig(ServletConfig servletConfig) { 
    try { 
     this.init(servletConfig); 
    } catch (ServletException e) { 
     throw new RuntimeException(e); 
    } 
    this.servletConfig = servletConfig; 
} 

@Override 
protected void onAfterRequestDeserialized(RPCRequest rpcRequest) { 
    super.onAfterRequestDeserialized(rpcRequest);  
} 

@Override 
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { 
    super.doPost(request, response); 
    return null; 
} 

@Override 
protected void doUnexpectedFailure(Throwable e) { 
    log.error(e.getMessage(), e); 
} 

}

और अपने GWT-RPC सेवा:

@RemoteServiceRelativePath("gwtrpc/xxx") 
public interface XxxService extends RemoteService { 
... 
} 

@Controller 
@RequestMapping(value = "xxx") 
public class XxxServiceImpl extends GwtRpcController implements XxxService { 
... 
} 

यकीन है कि "gwtrpc/*" SpringDispatcher सर्वलेट करने के लिए मैप किया गया है सुनिश्चित करें web.xml। आम तौर पर आप इसे सब कुछ ("/") मैप करेंगे और गैर-स्प्रिंग संसाधनों जैसे सीएसएस आदि के लिए अपवाद बनायेंगे, इसलिए आपको कुछ भी स्पष्ट रूप से करने की आवश्यकता नहीं है।