दिलचस्प पोस्ट
तालिका दृश्य पंक्ति उपस्थिति अपडेट करना सार्वजनिक / बाह्य आईपी पता प्राप्त करें? पायथन नियमित अभिव्यक्ति में बैकस्लैश विरासत के लिए `Object.create` का उपयोग करने के लाभ बेस 64 को डीकोड करने के लिए जावास्क्रिप्ट एटोब का इस्तेमाल करना यूटीएफ -8 तारों को ठीक से व्याख्या नहीं करता है एरे बनाम वेक्टर: परिचयात्मक समानताएं और अंतर कैसे 2 ints के विभाजन बनाने के लिए एक और int के बजाय एक नाव का उत्पादन? Html.EnumDropdownListFor: एक डिफ़ॉल्ट टेक्स्ट दिखा रहा है जावा में JButton पर फिट करने के लिए आइकन का आकार बदलना है? क्रॉस ब्राउज़र सीएसएस ज़ूम के लिए पूर्ण शैलियों कैसे एप्पल आईफोन एसडीके के साथ UIKeyboard आकार पाने के लिए क्या const_cast सुरक्षित है? Android M कैमरा आशय + अनुमति बग? कार्यस्थान में SDK- नमूना प्रोजेक्ट को डुप्लिकेट कैसे करें? स्क्वॉन्ग पाठ के बिना सीएसएस का इस्तेमाल करते हुए एक div के ऊपर तिरछा

टंक्रीट में विभिन्न अनुप्रयोगों के बीच सत्र का हिस्सा साझा करने का कोई भी तरीका?

हम दूसरे को प्रभावित किए बिना एक ऐप को अपडेट करने में सक्षम होने के लिए दो अलग। प्रत्येक वेबएप के पास एक यूआई, अलग-अलग उपयोगकर्ताओं और अलग-अलग कार्यक्रमों की तैनाती होगी।

सबसे आसान रास्ता उसी सत्र को साझा करना लगता है, इसलिए यदि ऐप एक सेट session.setAttribute("foo", "bar") ऐप बी इसे देख सकेगा।

क्या एक ही HttpSession उदाहरण में दोनों ऐप्स के लिए HttpSession का हिस्सा साझा करने का कोई तरीका है?

हमारा ऐप एक समर्पित टोमैक 5.5 पर चल रहा है, वही टॉमकेट इंस्टेंस पर चलने वाले कोई अन्य ऐप नहीं हैं, इसलिए सत्र बांटने के संबंध में किसी भी सुरक्षा संबंधी चिंता एक समस्या नहीं है। हम कई टॉमकेट इंस्टेंस चला रहे हैं, लेकिन बैलेंसर्स स्टिकी सत्रों का उपयोग कर रहा है।

अगर यह संभव नहीं है या यह सत्र साझा करना वास्तव में खराब विचार है तो कृपया एक टिप्पणी छोड़ दें।

Solutions Collecting From Web of "टंक्रीट में विभिन्न अनुप्रयोगों के बीच सत्र का हिस्सा साझा करने का कोई भी तरीका?"

आपको एचटीटीपी सत्र को साझा नहीं करना चाहिए; लेकिन आप अन्य वस्तुओं को साझा कर सकते हैं उदाहरण के लिए, आप किसी ऑब्जेक्ट को जेएनडीआई के माध्यम से रजिस्टर कर सकते हैं और अपने ऑब्जेक्ट में उसी ऑब्जेक्ट को एक्सेस कर सकते हैं (डाटाबेस इस कनेक्शन कनेक्शन के लिए उपयोग करते हैं)

इसके बारे में जागरूक होना एक बात यह है कि दो वेब ऐप विभिन्न क्लासलोडरों का उपयोग करेंगे। यदि आप ऑब्जेक्ट्स को साझा करना चाहते हैं, तो उन्हें उसी क्लासलोडर से क्लास के समान संस्करण का उपयोग करना होगा (या फिर आप लिंकगेरर्स प्राप्त करेंगे)। इसका अर्थ है या तो उन दोनों को वेबहोस्ट (उदाहरण के लिए सिस्टम क्लासपाथ) द्वारा क्लासलोडर में डाल दिया जाता है या कक्षा के सही संस्करण के साथ ही सही क्लासोडर में ऑब्जेक्ट प्रभावी ढंग से नाली और पुनर्गठन के लिए सीरियललाइज़ेशन का उपयोग कर रहा है।

यदि वेबएप को इतनी बारीकी से युग्मित कर दिया गया है कि उन्हें ऑब्जेक्ट साझा करने की आवश्यकता है तो आप इसे दो में क्यों बांट रहे हैं? यहां तक ​​कि अगर आप उन्हें कुछ हद तक स्वतंत्र रूप से प्रबंधित करते हैं तो सभ्य बिल्ड प्रबंधन प्रणाली को तैनाती के लिए एक एकल युद्ध फ़ाइल बनाने में सक्षम होना चाहिए।

एक समाधान जैसे हारून ने सुझाव दिया कि जेएनडीआई काम करे, लेकिन केवल अगर दोनों वेबएप एक ही सर्वर पर चल रहे हों अगर इकाइयां कसकर युग्मित हैं और आप इसे वही सर्वर पर चलाना चाहते हैं … साथ ही एक एकल युद्ध हो सकता है

यदि आप वास्तव में चाहते हैं कि उन्हें स्वतंत्र रूप से खड़ा करना है तो मैं दो के बीच डेटा विनिमय की गंभीरता से जांच करूंगा। आदर्श रूप से आप चाहते हैं कि वे केवल एक दूसरे के साथ प्रासंगिक डेटा साझा करें। यह डेटा POST के द्वारा आगे और पीछे पारित किया जा सकता है (या अधिक उपयुक्त हो तो पैरामीटर), तो आप कुकीज़ का उपयोग करने पर भी विचार कर सकते हैं।

यदि आप स्प्रिंग का उपयोग करना चाहते हैं, तो एक स्प्रिंग सत्र नामक एक परियोजना है: https://github.com/spring-projects/spring-session

उद्धरण: "एचटीटीपी सत्र – अनुप्रयोग कंटेनर (यानी टोमकैट) तटस्थ तरीके से एचटीटीपी सत्र को बदलने की अनुमति देता है"

ऐसा करने का एक तरीका इस ब्लॉग पोस्ट में वर्णित है: अपाचे टॉमकेट में सत्र साझाकरण

सारांश: सम्पर्क के लिए कनेक्टर कॉन्फ़िगरेशन और क्रॉस कंटेंटेक्स्ट में रिक्त सत्र जोड़ें

आप अपने संदर्भ रूट के द्वारा सर्वलेट संदर्भ ले कर कर सकते हैं।

चर को पुनः प्राप्त करने के लिए

 request.getSession().getServletContext().getContext("/{applicationContextRoot}").getAttribute(variableName) 

वैरिएबल सेट करने के लिए:

 request.getSession().getServletContext().getContext("/{applicationContextRoot}").setAttribute(variableName,variableValue) 

नोट: दोनों अनुप्रयोग एक ही सर्वर में तैनात किए जाने चाहिए।

Pls मुझे पता है अगर आपको कोई समस्या मिलती है

<Context crossContext="true" sessionCookiePath="/"> 8: मुझे करना था: <Context crossContext="true" sessionCookiePath="/"> conf / context.xml में

कॉन्फ़िग एट्रिब्यूट्स पर अधिक विवरण यहां

और उसके बाद मान सेट (जैसे @ काजी का जवाब):

 ServletContext servletContext =request.getSession().getServletContext().getContext("contextPath") servletContext.setAttribute(variableName,variableValue) 

मूल्य प्राप्त करने के लिए:

 ServletContext servletContext =request.getSession().getServletContext().getContext("contextPath") servletContext.getAttribute("user"); 

आपको अपने ऐप को उच्च उपलब्धता के आधार पर अलग नहीं करना चाहिए। आप कई बिलाव उदाहरणों पर पूरे ऐप को नियुक्त कर सकते हैं।