2013-06-10 8 views
13

पास करें मैं वेब एप्लिकेशन कोडिंग के लिए ग्रहण का उपयोग कर रहा हूं। इसके भीतर मैंने पर्यावरण चर जैसे पारित किया:उपयोगकर्ता परिभाषित पर्यावरण चर को टोमकैट

  1. प्रोजेक्ट -> चलाएं -> कॉन्फ़िगरेशन चलाएं। और चयनित पर्यावरण टैब।
  2. नाम APP_MASTER_PASSWORD और उसके मूल्य के साथ नया पर्यावरण चर जोड़ें।

मैं इस कोड को जावा कोड में System.getenv("APP_MASTER_PASSWORD") के रूप में एक्सेस कर सकता हूं।

लेकिन अब मैं इस पर्यावरण चर को टॉमकैट में पास करना चाहता हूं और इसे ग्रहण के माध्यम से गुजरने के बजाय एप्लिकेशन में एक्सेस करना चाहता हूं।

तो मैं ऐसे चर को टोमकैट में कैसे पारित कर सकता हूं?

मैं इसके बारे में googled। लेकिन मुझे कोई समाधान नहीं मिला।

धन्यवाद।

+0

क्या कोई टोमकैट vhost का उपयोग कर कोई विकल्प नहीं है? यदि आपके पास ऐप चलाने की कई प्रतियां हैं, तो ये पर्यावरण सेटिंग्स आसान नहीं हैं। मेरा मानना ​​है कि उन्हें "पर्यावरण प्रविष्टियां" कहा जाता है? – Wouter

उत्तर

6

<Environment> मार्कअप द्वारा निर्दिष्ट पर्यावरण प्रविष्टियां जेएनडीआई हैं, InitialContext.lookup का उपयोग java:/comp/env के तहत सुलभ है। InitialContext कन्स्ट्रक्टर और application resource files पर पर्यावरण पैरामीटर का उपयोग करके आप JNDI पर पर्यावरण गुण निर्दिष्ट कर सकते हैं।

System.getEnv() टॉमकैट प्रक्रिया के सिस्टम पर्यावरण चर के बारे में है।

बैश आदेश का उपयोग एक वातावरण चर सेट करने के लिए: export TOMCAT_OPTS=-Dmy.bar=foo और बिलाव शुरू: ./startup.sh सिस्टम संपत्ति bar उपयोग System.getProperty() का मान प्राप्त करने के लिए। System.getEnv() का उपयोग पर्यावरण परिवर्तनीय i.e. TOMCAT_OPTS को पुनर्प्राप्त करने के लिए किया जा सकता है।

+0

आज यह CATALOINA_OPTS है - लेकिन अलग-अलग रूप में यह है कि इसने मुझे अभी मदद की! – Henning

20

आप टोमकैट में पर्यावरण चर को पारित करने के लिए setenv.bat या .sh का उपयोग कर सकते हैं।

CATALINA_BASE/bin/setenv.bat या .sh फ़ाइल बनाएं और इसमें निम्न पंक्ति डालें, और फिर टॉमकैट शुरू करें।

विंडोज पर:

set APP_MASTER_PASSWORD=foo

सिस्टम की तरह

यूनिक्स पर:

export APP_MASTER_PASSWORD=foo

+0

उबंटू मुझे विश्वास है कि यह मामला विशिष्ट है। उदाहरण के लिए Red Hat के लिए, आप CATALINA_HOME/tomcat7.conf – mmcrae

+0

संपादित कर सकते हैं यह थोड़ी देर हो चुकी है लेकिन ... [टोमकैट के दस्तावेज] के अनुसार (https://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt), setenv.sh बनाना यूनिक्स के किसी भी स्वाद के लिए काम करना चाहिए। Catalina.sh स्क्रिप्ट यह देखने के लिए जांच करेगी कि setenv.sh मौजूद है, यदि हां, तो स्टार्टअप प्रक्रिया के दौरान इसे निष्पादित करें। –

+0

'catalinaA_BASE/bin/setenv.sh' और' CATALINA_HOME/bin/setenv.sh' दोनों के लिए catalina.sh' चेक, और मौजूद होने पर उन्हें निष्पादित करता है। – rustyx

17

आप इस मामले के लिए सिस्टम संपत्ति के बजाय वातावरण चर का उपयोग करना चाहिए। संपत्ति JAVA_OPTS के लिए अपने बिल्ला स्क्रिप्ट संपादित करने और जोड़ने की तरह:

-DAPP_MASTER_PASSWORD=foo

और अपने कोड में, लिखने

System.getProperty("APP_MASTER_PASSWORD");

आप JAVA_OPTS के बजाय रूप में अच्छी तरह ग्रहण में ऐसा कर सकते हैं,, कॉपी रन कॉन्फ़िगरेशन के अंदर वीएम पैरामीटर में लाइन।

0

विंडोज के मामले में, (@echo के बाद बंद) आप setenv.bat, catalina.bat के 2 लाइन में नहीं मिल सकता है अगर यह जोड़ें:
सेट APP_MASTER_PASSWORD = foo

नहीं हो सकता सर्वोत्तम दृष्टिकोण, लेकिन

1

यदि आप अपने टॉमकैट को ग्रहण ("सर्वर" दृश्य) से शुरू कर रहे हैं तो आपके पास "अपाचे टॉमकैट/टोमकैट ..." नामक "रन/रन कॉन्फ़िगरेशन" (मेनू) प्रविष्टि होनी चाहिए। जब आप रन कॉन्फ़िगरेशन की सूची में इस प्रविष्टि का चयन करते हैं तो आपको कई टैब वाले विंडो मिलती हैं, जिनमें से एक को "पर्यावरण" लेबल किया जाता है। वहां आप अपने टोमकैट के लिए पर्यावरण चर कॉन्फ़िगर कर सकते हैं। बाद में टॉमकैट को पुनरारंभ करना सुनिश्चित करें।

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