2009-09-17 14 views
12

चलाने वाले ग्रिज़ली सर्वर के साथ फ़िल्टर का उपयोग करके मैं जर्सी का उपयोग करके एक आरईएसटी सेवा चलाने के लिए सर्वर बनाने के लिए ग्रिज़ली का उपयोग करने की कोशिश कर रहा हूं जिसे मैंने जर्सी का उपयोग करके विकसित किया है। मैं ग्रिज़ली सर्वर का उपयोग कर रहा हूं:जर्सी रीस्ट सेवा

final String baseUri = "http://localhost:9998/"; 
final Map<String, String> initParams = new HashMap<String, String>(); 
initParams.put("com.sun.jersey.config.property.packages", "me.my.rest.package"); 
SelectorThread threadSelector = 
    GrizzlyWebContainerFactory.create(baseUri, initParams); 

जैसा कि मैंने पाया है कि सभी उदाहरण सुझाए गए हैं। यह ठीक है, सर्वर शुरू होता है और आने वाले अनुरोधों को मेरे संसाधन वर्गों में अग्रेषित करने में सक्षम है।

हालांकि, सेवा कार्यान्वयन के लिए इसे सर्वलेट फ़िल्टर का उपयोग करने की आवश्यकता होती है। ऐसा लगता है कि ServletAdapter कक्षा के माध्यम से, ग्रीज़ली फिल्टर और अन्य समान सर्वलेट से संबंधित कॉन्फ़िगरेशन विकल्पों की परिभाषा का समर्थन करता है। मेरी समस्या यह है कि मैं com.sun.jersey.api.container.grizzly.GrizzlyWebContainerFactory का उपयोग करते समय फ़िल्टर को परिभाषित करने के तरीके को कैसे काम नहीं कर सकता जो जर्सी एकीकरण प्रदान करता है।

कोई विचार?

+0

कमाल है, मैं तो बस के बारे में बिल्कुल एक ही सवाल पूछने के लिए किया गया था। अगर कुछ सीखो तो मुझे बताएं। मैं वैसा ही करूंगा। – ra9r

उत्तर

8

मुझे लगता है कि मैं तुम्हारे लिए कुछ हो सकता है ...

GrizzlyWebServer ws = new GrizzlyWebServer(9999); 
ServletAdapter jerseyServletAdapter = new ServletAdapter(); 
jerseyServletAdapter.setServletInstance(new ServletContainer()); 
jerseyServletAdapter.addInitParameter(
    "com.sun.jersey.config.property.packages", "me.my.rest.package"); 
jerseyServletAdapter.setServletPath("/api"); 

// HERE IS HOW YOU ADD A FILTER 
jerseyServletAdapter.addFilter(new MyFilter(), "HibernateSessionFilter", null); 

ws.addGrizzlyAdapter(jerseyServletAdapter, null); 

... मेरे लिए अपने काम, मुझे आशा है कि यह आप के रूप में अच्छी तरह मदद करता है।

+1

धन्यवाद! यह ठीक वैसा ही है जैसा मुझे चाहिए। – Andy

+0

आप इस योजना में सर्वलेट संदर्भ कैसे जोड़ते हैं जैसे कि आप अपने संसाधन ऑब्जेक्ट्स में HttpServletRequest जैसे @Context चीजों के माध्यम से इंजेक्ट कर सकते हैं? – ae6rt

1

आप की कोशिश की है:

((ServletAdapter) threadSelector.getAdapter()).addFilter() 
संबंधित मुद्दे