Hmm. Sembra che il percorso più semplice per ottenere ciò che voglio dal lato Java dell'applicazione sia quello di utilizzare Servlet.getServletConfig().
getInitParameter(parameterName)
ad es. getInitParameter ("myApp.connectionString");
Ma non so dove impostare questo. Il Tomcat docs parla di varie permutazioni di context.xml ma voglio assicurarmi che questo parametro abbia effetto solo sul mio servlet e non su altri. Inoltre, non voglio trovarlo all'interno del mio file .war in modo da poter mantenere questo parametro indipendente dalle applicazioni (ad esempio se installo un aggiornamento).
Aggiornamento: ho capito, parametri chiave/valore accessibili da ServletContext.getInitParameter() andare qui (o può andare qui) in $ {} 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>
Questo imposta due parametri, "foo" = "123", "bar" = "456" per il servlet myWarFile.war (o più esattamente con il percorso URL /myWarFile
) e posso ottenerli in Java con Servlet.getServletConfig().getInitParameter("foo")
o Servlet.getServletConfig().getInitParameter("bar")
.
ho visto anche l'ingresso server.xml di JIRA (e what they tell you to set it to for MySQL), usano un Resource
piuttosto che un Parameter
, non del tutto sicuro delle sottigliezze di questo, ma sembra che potrebbe essere il metodo più appropriato.
<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>
fonte
2009-10-05 22:21:01
grazie ...probabilmente hai ragione sul lungo periodo, ma questa è probabilmente l'unica app Tomcat su cui lavorerò per un lungo periodo di tempo + Non ho troppo tempo libero per capire come modificare la mia applicazione. I documenti di apache non sono molto chiari. –
questo ha un po 'più senso ora dopo aver passato il tempo a tirare fuori i miei capelli (ahimè ...) e dopo aver guardato il server.xml JIRA. Come posso accedere a DataSource dalla mia app Java, però? La pagina di esempio fornisce un esempio di JSP ma non di codice Java. –
Includono un paio di esempi più in basso (ad esempio nella sezione PostgreSQL, passaggio 4). –