2010-10-27 15 views
9

क्या ऐप में सभी उपलब्ध सर्लेटों की सूची प्राप्त करना संभव है?सभी उपलब्ध सर्लेटों की सूची कैसे प्राप्त करें?

मैं एक वेब एप्लिकेशन लिख रहा हूं जो बहुत सारे सर्लेट का पर्दाफाश करेगा और मैं प्रत्येक व्यक्ति को यह देखने के लिए HttpUnit का उपयोग करना चाहता हूं कि यह वापस लौट रहा है या नहीं।

जितना कि यह एक साधारण एक्सएमएल प्रतिक्रिया वापस करेगा, यह वास्तव में सहायक होगा कि प्रत्येक के लिए एक टेस्ट केस न लिखना, केवल यह सत्यापित करना कि यह काम कर रहा है (डेटाबेस परिवर्तन ने इस सर्वलेट को काम करने के लिए नहीं रोका है, उदाहरण के लिए)।

+0

मुझे ऐसा करने के लिए किसी फ़ंक्शन से अवगत नहीं है, लेकिन ऐप के web.xml में उन सभी की एक सूची होगी। – Powerlord

उत्तर

0

प्रतिबिंब का उपयोग करके आप सभी कक्षाओं को देख सकते हैं जो HTTPServlet हैं।

+1

मुझे नहीं लगता कि आप HTTPServlet के कार्यान्वयन को देखने के लिए प्रतिबिंब का उपयोग कर सकते हैं। मुझे पता है कि कक्षा/इंटरफ़ेस के उदाहरण प्राप्त करना संभव नहीं है क्योंकि लोड किए गए वर्ग को तब तक उनके बारे में पता नहीं है जब तक वे लोड नहीं हो जाते हैं। –

1

ऐसा नहीं लगता कि बॉक्स में से कुछ बाहर है। हालांकि आप एक छोटा प्रोग्राम लिख सकते हैं जो आवश्यक जानकारी प्राप्त करने के लिए आपके web.xml को पार करता है।

0

यदि आप टोमकैट का उपयोग करते हैं, तो आप अपने क्लासपाथ में सर्वर जार शामिल कर सकते हैं और फिर ServletContext को टॉमकैट कार्यान्वयन में डाल सकते हैं। इसमें आपको जो भी चाहिए वह शामिल है।

+1

टोमकैट 5.5 के रूप में, यह उपलब्ध नहीं है। दोनों getServletNames() और getServlets() को हटा दिया जाता है, बिना किसी प्रतिस्थापन के, और हमेशा एक खाली गणना लौटाते हैं। Http://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/ServletContext.html#getServlets() –

+0

देखें आप सार्वजनिक एपीआई, केवल आंतरिक एपीआई का उपयोग नहीं कर सकते हैं। यही कारण है कि मैं "सर्वर जार शामिल" saif, कि $ TOMCAT_HOME/सर्वर/lib – Daniel

7
Map<String, ? extends ServletRegistration> servletRegistrations = request.getServletContext().getServletRegistrations(); 

यह आपकी मदद करेगा।

+2

में जार यह मेरे लिए काम किया, धन्यवाद। लेकिन दूसरों के लिए एफवाईआई, 'getServletRegistrations() 'विधि केवल Servlet 3.0 विनिर्देश के बाद उपलब्ध है (यानी जावा ईई 6 - यानी टोमकैट 7+) – Javaru

संबंधित मुद्दे