मेरे पास एक सर्वलेट 3.0 वेब ऐप है जो स्प्रिंग और जर्सी दोनों का उपयोग करता है। मैंने वर्तमान में इसे web.xml में फ़िल्टर के रूप में कॉन्फ़िगर किया गया स्प्रिंगसेर्लेट का उपयोग करके स्थापित किया है, और @Path
और @Component
दोनों के साथ एनोटेटेड संसाधन वर्ग। यहाँ web.xml टुकड़ा है:केवल एनोटेशन का उपयोग करके वसंत के साथ जर्सी को कॉन्फ़िगर करें
<filter>
<filter-name>jersey-serlvet</filter-name>
<filter-class>
com.sun.jersey.spi.spring.container.servlet.SpringServlet
</filter-class>
<init-param>
<param-name>
com.sun.jersey.config.property.packages
</param-name>
<param-value>com.foo;com.bar</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.feature.FilterForwardOn404</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>jersey-serlvet</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
इस सेटअप काम करता है, लेकिन मैं वास्तव में यह केवल एनोटेशन के साथ सेट प्राप्त करना चाहते हैं - कोई web.xml config। इस पर मेरा पहला प्रयास उपरोक्त स्प्रिंगसेर्लेट कॉन्फ़िगरेशन को हटाने और Application
तक फैला हुआ एक वर्ग बनाना था। यहाँ इस बात का एक टुकड़ा है:
@ApplicationPath("/*")
public class MyApplication extends PackagesResourceConfig {
public MyApplication() {
super("com.foo;com.bar");
HashMap<String, Object> settings = new HashMap<String, Object>(1);
settings.put(ServletContainer.FEATURE_FILTER_FORWARD_ON_404, true);
this.setPropertiesAndFeatures(settings);
}
}
इस में काम करता है कि JAX-आरएस संसाधनों पंजीकृत हैं और मैं उन्हें अपने URL पर हिट कर सकते हैं, लेकिन वे NullPointerExceptions फेंक जब वे कोशिश करते हैं और उनके autowired गुण का उपयोग करें ... इस बनाता है समझ में आता है क्योंकि मैं संसाधनों का अनुमान लगा रहा हूं अब जर्सी द्वारा लोड किया जा रहा है और स्प्रिंग प्रबंधित बीन्स नहीं हैं, इसलिए कोई ऑटोवॉयरिंग नहीं है।
चारों ओर खोज करने के काफी हद तक मुझे जर्सी संसाधनों को केवल एनोटेशन के साथ वसंत बीन्स के रूप में लोड करने का कोई तरीका नहीं मिल रहा है। क्या ऐसा कोई तरीका है? मैं वास्तव में वसंत संदर्भ मैन्युअल रूप से लाने के लिए संसाधनों के लिए कोड का एक गुच्छा लिखना नहीं चाहता हूं और यदि मैं इसकी सहायता कर सकता हूं तो DI को आह्वान करना चाहता हूं।
यदि टिप्पणियां केवल काम नहीं करने जा रही हैं, तो मैं वेब.एक्सएमएल में फ़िल्टर कॉन्फ़िगरेशन के साथ रह सकता हूं यदि मैं Application
कक्षा को स्कैन करने के लिए संकुल की सूची के बजाय लोड करने के लिए निर्दिष्ट कर सकता हूं। अगर मैं वहां पैकेज सूची से छुटकारा पा सकता हूं और केवल Application
क्लास इंस्टेंस निर्दिष्ट कर सकता हूं तो मैं सामग्री दूंगा।
स्पष्ट रूप से यह बहुत अच्छा होगा अगर किसी के पास मेरे लिए एक निश्चित उत्तर था, लेकिन मैं किसी भी पॉइंटर्स या संकेतों के लिए आभारी हूं कि मैं कहां देख सकता हूं या कोशिश करने के लिए चीजें।
धन्यवाद, मैट
आपके उत्तर के लिए धन्यवाद, लेकिन मैं जर्सी 1 का उपयोग कर रहा हूँ और मैं किसी भी मुसीबत हो रही है की जरूरत नहीं है जर्सी संसाधन लोड और चल रहा है। मुद्दा यह है कि मैं उन्हें वसंत द्वारा प्रबंधित करना चाहता हूं इसलिए मुझे ऑटोवॉयरिंग मिलती है। – Doughnuts
ठीक है, उस स्थिति में यह आपके लिए समाधान नहीं है। लेकिन बस स्पष्ट होना: यह वसंत autowiring सक्षम बनाता है। – rustyx