हम्म। ऐसा लगता है कि एप्लिकेशन के जावा पक्ष पर जो कुछ भी मैं चाहता हूं उसे प्राप्त करने का सबसे आसान तरीका Servlet.getServletConfig().
getInitParameter(parameterName)
उदा। getInitParameter ("myApp.connectionString");
लेकिन मुझे नहीं पता कि यह कहां सेट करना है। Tomcat docs context.xml के विभिन्न क्रमिकताओं के बारे में बात करते हैं लेकिन मैं यह सुनिश्चित करना चाहता हूं कि यह पैरामीटर केवल मेरे सर्वलेट को प्रभावित करता है और किसी अन्य को नहीं। मैं इसे अपनी .war फ़ाइल में भी नहीं ढूंढना चाहता हूं ताकि मैं इस पैरामीटर को एप्लिकेशन से स्वतंत्र रख सकूं (उदाहरण के लिए यदि मैं अपग्रेड इंस्टॉल करता हूं)।
अद्यतन: मैं इसे समझ से बाहर, ServletContext.getInitParameter() द्वारा पहुँचा जा सकता कुंजी/मान पैरामीटर यहाँ जाना (या यहां जा सकते हैं) में $ {CATALINA_HOME} /conf/server.xml:
<Server port=... >
...
<Service name="Catalina" ...>
<Engine name="Catalina" ...>
...
<Host name="localhost" ...>
<Context path="/myWarFile">
<Parameter name="foo" value="123" />
<Parameter name="bar" value="456" />
...
</Context>
</Host>
</Engine>
</Service>
</Server>
यह सर्वलेट myWarFile.war (या URL पथ /myWarFile
के साथ अधिक सटीक रूप से) के लिए दो पैरामीटर, "foo" = "123", "bar" = "1236" सेट करता है (और मैं उन्हें Servlet.getServletConfig().getInitParameter("foo")
या Servlet.getServletConfig().getInitParameter("bar")
के साथ जावा में प्राप्त कर सकता हूं।
मैं भी JIRA के server.xml प्रविष्टि (और what they tell you to set it to for MySQL) को देखा है, वे इस बात का बारीकियों की काफी यकीन नहीं बल्कि एक Parameter
की तुलना में एक Resource
उपयोग करते हैं, लेकिन ऐसा लगता है जैसे कि यह अधिक उपयुक्त तरीका हो सकता है।
<Server port=... >
<Service name="Catalina" ...>
<Engine name="Catalina" ...>
<Host name="localhost" ...>
<Context path="/jira" docBase="${catalina.home}/atlassian-jira"
reloadable="false">
<Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource"
username="jirauser"
password="..."
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/jiradb1?autoReconnect=true&useUnicode=true&characterEncoding=UTF8"
maxActive="20"
validationQuery="select 1"
/>
</Context>
</Host>
</Engine>
</Service>
</Server>
स्रोत
2009-10-05 22:21:01
धन्यवाद ...आप शायद लंबे समय तक चलने के बारे में सही हैं, लेकिन शायद यह एकमात्र टॉमकैट ऐप है जो मैं लंबे समय तक काम कर रहा हूं + मेरे पास अपने आवेदन को ट्विक करने के बारे में जानने के लिए बहुत अधिक समय नहीं है। अपाचे दस्तावेज़ बहुत स्पष्ट नहीं हैं। –
यह मेरे बालों को खींचने में समय बिताने के बाद अब थोड़ा और समझ में आता है (हां ...) और JIRA server.xml को देखने के बाद। मैं अपने जावा ऐप के भीतर से डेटासोर्स का उपयोग कैसे करूं? उदाहरण पृष्ठ जेएसपी का एक उदाहरण देता है लेकिन जावा कोड का नहीं। –
उनमें कुछ उदाहरण आगे शामिल हैं (उदा। पोस्टग्रेएसक्यूएल अनुभाग, चरण 4 में)। –