java ee - Application context path at JAX-RS 2.0 resource instance construction -


क्या JAX-RS 2.0 रिसोर्स क्लास इन्सस्ट्रेशन निर्माण समय पर जावा EE 7 एप्लिकेशन के लिए संदर्भ पथ प्राप्त करना संभव है (और संभवतः स्थैतिक कक्षा प्रारंभिक समय पर भी), या क्या यह केवल संसाधन वर्ग के समापन बिंदुओं के अनुरोध के दौरान ही उपलब्ध है?

संदर्भ पथ से मेरा मतलब है कि स्ट्रिंग जो कॉल द्वारा HttpServletRequest # getContextPath () जावा EE 7 अनुप्रयोग के अंदर।

मैं सोचता हूं कि आपके पास एक नियोजित अनुप्रयोग के लिए एकाधिक संदर्भ पथ उपनाम हो सकते हैं। यदि हां, तो संदर्भ पथ केवल अनुरोध समय पर ही उपलब्ध हो सकता है।

मुझे उस संदर्भ पथ के बारे में परवाह नहीं है, जो अनुरोध के लिए URL में वास्तव में उपयोग किया गया था। एक कैनोनिकल या डिफॉल्ट संदर्भ पथ, जो कक्षा में समापन बिंदुओं के लिए काम करेगा, मेरे लिए काफी अच्छा है।

इस तरह के एक संदर्भ पथ को प्राप्त करने के लिए तकनीक को जैक्स-आरएस 2.0 विशिष्ट नहीं होना चाहिए। यह कुछ अन्य जावा ईई 7 युक्ति से आ सकता है, जब तक कि यह जेएक्स-आरएस 2.0 संसाधन वर्ग निर्माण समय (या अधिक मोटे तौर पर, स्थिर क्लास प्रारंभिक समय पर) में काम करता है।

अपडेट:

मैं यह उल्लेख करना भूल गया था कि क्लास सीडीआई @ अनुप्रयोग स्कोप किया गया है , इसलिए इसके कन्स्ट्रक्टर को अनुरोध समय पर नहीं बुलाया गया है, क्योंकि यह होगा कि यह @ अनुरोध

आप अपने खाली आवेदन के लिए आधार यूआरआर प्राप्त कर सकते हैं एक संसाधन के निर्माता में UriInfo :

  @ अनुप्रयोग स्काप @ पाथ ("/ संसाधन पाथ") सार्वजनिक वर्ग MyRestResource {सार्वजनिक MyRestResource (@Contxt UriInfo uriInfo) {URI uri = UuriInfo.getBaseUri (); } @GET जन प्रतिक्रिया कुछ विधि () {...}}   

संसाधन कोड पर UriInfo तरीकों से अधिक IllegalStateException वापस आ जाएगा समय, लेकिन getBaseUri () विधि काम करेगा

यह एक यूआरआई जैसे http: // वापस करेगा।

लेकिन मुझे यकीन नहीं है कि क्लास इनिशियलाइज़ेशन टाइम में इसे स्थिर रूप से प्राप्त करना संभव होगा ...

Comments